ElasticSearch - 短语建议器

标签 elasticsearch

我正在使用 ElasticSearch 并且我有以下索引映射:

post  /my_index
{ 
  "mappings": {
    "medical_terms": {
      "properties": {
        "terms": {
          "type":     "string"
        }
      }
    }
  }
} 

PUT my_index/medical_terms/1
{
  "term":   "Paracetamol tablets"
}

POST /my_index/_search?search_type=count
{
  "suggest" : {
    "text" : "paracetmo tabelts",
    "simple_phrase" : {
      "phrase" : {
        "field" : "term",
        "size" : 1,
        "real_word_error_likelihood" : 0.95,
        "max_errors" : 0.5,
        "gram_size" : 2,
        "highlight": {
          "pre_tag": "<em>",
          "post_tag": "</em>"
        }
      }
    }
  }
}

如何让短语建议器在返回时返回“paracetamol tablets”:

"suggest": {
  "simple_phrase": [
     {
        "text": "paracetmo tabelts",
        "offset": 0,
        "length": 17,
        "options": [
           {
              "text": "paracetmo tablets",
              "highlighted": "paracetmo <em>tablets</em>",
              "score": 0.24901225
           }
        ]
     }
  ]

我需要使用自定义分析器和字典吗?

最佳答案

问题是 "max_errors": 0.5, 参数。如果您将它设置为 0.8,它会返回您预期的结果。我无法真正向您解释为什么 0.8 有效,因为实际上 0.5 意味着 50% 的术语可能写错了,这是您的用例,但不知何故它适用于 0.8。也许在 elasticsearch 用户组中询问该信息?

关于ElasticSearch - 短语建议器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32011110/

相关文章:

elasticsearch - 提升人气错误为 “Missing value for field [x]”

elasticsearch - 在Elasticsearch的字段中匹配X个或更多单词

elasticsearch - Elasticsearch:将结果限制为完全匹配的文档

具有源过滤功能的 ElasticSearch NEST MultiGet

curl - 通过curl的PUT索引映射导致错误(Content-Type header 修复不起作用)

sql - 如何获取距离当前时间 30 秒创建或更新的数据 PostgreSQL

elasticsearch - 如何在具有多个索引的ElasticSearch中实现分页?

hadoop - es-hadoop(ElasticSearch-Hadoop)是如何做Hadoop的?

java - Elasticsearch 中关闭和关闭节点的区别?

java - 在生产环境中使用带有Elasticsearch alpha 3版本的Hibernate Search有什么危险?