elasticsearch Elasticsearch,术语建议返回,elasticsearch,autocomplete,elasticsearch,Autocomplete" /> elasticsearch Elasticsearch,术语建议返回,elasticsearch,autocomplete,elasticsearch,Autocomplete" />

elasticsearch Elasticsearch,术语建议返回

elasticsearch Elasticsearch,术语建议返回,elasticsearch,autocomplete,elasticsearch,Autocomplete,我不能让术语建议者工作 这是我的设置 'name_not_analyzed': { 'type': 'string', "index": "not_analyzed" }, 'suggest': { 'type': 'completion', 'analyzer': "simple", 'search_analyzer': 'simple', 'payloads': 'yes' } 这是我的要求 **术语建议者不起作用 GET /reviewm

我不能让术语建议者工作

这是我的设置

'name_not_analyzed': {
    'type': 'string',
    "index": "not_analyzed"
},

'suggest': {
    'type': 'completion',
    'analyzer': "simple",
    'search_analyzer': 'simple',
    'payloads': 'yes'
}
这是我的要求

**术语建议者不起作用

GET /reviewmeta_index/_suggest
{

    "my" : {
    "text" : "dd",
        "term" : {
        "field" : "name_not_analyzed"
         }
     }
}
**竣工建议工程

GET /reviewmeta_index/_suggest
{
  "product_suggest":{
        "text":"dd",
        "completion": {
            "field" : "suggest"
        }
    }
}

关于如何设置术语建议器工作的文档很少。

完成建议器
用于自动完成功能,因此类似于查询

{
  "name_suggest":{
        "text":"d",
        "completion": {
            "field" : "suggest"
        }
    }
}
会给你类似的东西

    "options": [
                {
                   "text": "donald",
                   "score": 8
                },
                {
                   "text": "david",
                   "score": 7
                }
]
termsuggester
用于拼写检查和查找相似的术语,因此您需要像

{
  "my-suggestion": {
    "text": "davi",
    "term": {
      "field": "name_not_analyzed",
       "size" : 10
    }
  }
}
这会给你类似的东西

"options": [
            {
               "text": "dave",
               "score": 0.8333333,
               "freq": 11
            },
            {
               "text": "david",
               "score": 0.6666666,
               "freq": 6
            }
     ]
当用户得到零结果时,我使用术语suggester来表示“你们的意思是什么”特性。更多关于术语建议者的调整

编辑1:添加了最小字长选项

由于您的
文本
只有2个字符,而且
max\u edits
的默认值为2,而
min\u word\u length
的默认值为4,因此您不会得到任何结果

您需要在查询中添加
min\u word\u length
选项

GET /reviewmeta_index/_suggest
{

    "my" : {
    "text" : "dd",
        "term" : {
        "field" : "name_not_analyzed",
        "min_word_length" : 2
         }
     }
}
上述查询将为您提供类似“做”、“做过”的建议,但不会为您提供“做”、“做过”,因为您在字段上有
index:not_analysis

注意:默认情况下,不能将
max\u edits
增加到2以上


ES用于计算编辑距离。

是的,但术语建议不会返回任何内容(空选项)。我需要做一些特殊的设置工作才能使其正常工作吗?您能提供一些您认为应该与您的术语建议查询相匹配的示例文档吗?@eugene我已经编辑了我的答案。如果不行请告诉我谢谢<代码>最小字长是您建议的问题。