elasticsearch 用于此完成建议器的Elasticsearch Analyzer是什么?,elasticsearch,autocomplete,autosuggest,search-suggestion,query-analyzer,elasticsearch,Autocomplete,Autosuggest,Search Suggestion,Query Analyzer" /> elasticsearch 用于此完成建议器的Elasticsearch Analyzer是什么?,elasticsearch,autocomplete,autosuggest,search-suggestion,query-analyzer,elasticsearch,Autocomplete,Autosuggest,Search Suggestion,Query Analyzer" />

elasticsearch 用于此完成建议器的Elasticsearch Analyzer是什么?

elasticsearch 用于此完成建议器的Elasticsearch Analyzer是什么?,elasticsearch,autocomplete,autosuggest,search-suggestion,query-analyzer,elasticsearch,Autocomplete,Autosuggest,Search Suggestion,Query Analyzer,我对Elasticsearch非常陌生,目前正在尝试了解有关完成建议的分析器 我有一个这样的地方列表: 伦敦 伦敦眼 伦敦地牢 等等 通过将完成建议器的映射设置为以下内容: 'place_suggest': { 'type': 'completion', 'payloads': true, 'index_analyzer' : 'stop', 'search_analyzer' : 'stop', 'preserve_position_inc

我对Elasticsearch非常陌生,目前正在尝试了解有关
完成建议的分析器

我有一个这样的地方列表:

  • 伦敦
  • 伦敦眼
  • 伦敦地牢
  • 等等
通过将完成建议器的映射设置为以下内容:

'place_suggest': {
     'type': 'completion',
     'payloads': true,
     'index_analyzer' : 'stop',
     'search_analyzer' : 'stop',
     'preserve_position_increments' : false
}
当suggesters文本输入只是字母
L

然而,我希望当用户键入单词
Eye
时返回
London Eye
,同样地,当用户键入
Dungeon
时返回
伦敦地牢
(当然还有这些术语的任何前缀)

在今天的大部分时间里,我一直在使用不同的分析器和设置,但没有成功


我需要使用什么样的分析仪来实现上述功能?

您可以使用。使用多个输入字段和单个统一输出。如果其中一个输入字段上存在匹配项,则将返回输出字段

curl -X PUT localhost:9200/places/place/1 -d '
{
    "title" :         "The London Eye",
    "place_suggest" : {
        "input" :      [
            "The London Eye",
            "Eye"
        ],
        "output":"The London Eye"
     }
}'

curl -X PUT localhost:9200/places/place/2 -d '
{  
    "title" :         "The London Dungeon",
    "place_suggest" : {
        "input" :      [
            "The London Dungeon",
            "Dungeon"
         ],
         "output":"The London Dungeon"
    }
}'

你可以试试这个。我认为这不应该是一个被接受的答案。如果有人试图通过“伦敦”搜索怎么办?我相信在输入中加入“伦敦”将给出输出,但这需要输入。Siddhardha已经在使用完成建议器了。你能通过建议合适的分析器来证明答案的正确性吗?否则我认为这个答案不正确。谢谢