Elastic search自动完成 typeahead的edgeNGram,我的search_analyzer被忽略

Elastic search自动完成 typeahead的edgeNGram,我的search_analyzer被忽略,第1张

Elastic search自动完成 typeahead的edgeNGram,我的search_analyzer被忽略

我认为您没有完全按照自己的想法做。这就是为什么用完整的

curl
语句来呈现实际的测试用例而不是简化它的原因。

上面的示例对我有用(稍作修改):

使用设置和映射创建索引

curl -XPUT 'http://127.0.0.1:9200/test/?pretty=1'  -d '{  "mappings" : {     "test" : {        "properties" : {"userName" : {   "fields" : {      "autocomplete" : {         "search_analyzer" : "username_search",         "index_analyzer" : "username_index",         "type" : "string"      },      "userName" : {         "index" : "not_analyzed",         "type" : "string"      }   },   "type" : "multi_field"}        }     }  },  "settings" : {     "analysis" : {        "filter" : {"username_ngram" : {   "max_gram" : 15,   "min_gram" : 1,   "type" : "edge_ngram"}        },        "analyzer" : {"username_index" : {   "filter" : [      "lowercase",      "username_ngram"   ],   "tokenizer" : "keyword"},"username_search" : {   "filter" : [      "lowercase"   ],   "tokenizer" : "keyword"}        }     }  }}'

索引一些数据:

curl -XPOST 'http://127.0.0.1:9200/test/test?pretty=1'  -d '{  "userName" : "briangriffen"}'curl -XPOST 'http://127.0.0.1:9200/test/test?pretty=1'  -d '{  "userName" : "brianlilley"}'curl -XPOST 'http://127.0.0.1:9200/test/test?pretty=1'  -d '{  "userName" : "briangumble"}'

搜索将

brian
查找所有文档

curl -XGET 'http://127.0.0.1:9200/test/test/_search?pretty=1'  -d '{  "query" : {     "match" : {        "userName.autocomplete" : "brian"     }  }}'# {#    "hits" : {#       "hits" : [#          {#  "_source" : {#     "userName" : "briangriffen"#  },#  "_score" : 0.1486337,#  "_index" : "test",#  "_id" : "AWzezvEFRIykOAr75QbtcQ",#  "_type" : "test"#          },#          {#  "_source" : {#     "userName" : "briangumble"#  },#  "_score" : 0.1486337,#  "_index" : "test",#  "_id" : "qIABuMOiTyuxLOiFOzcURg",#  "_type" : "test"#          },#          {#  "_source" : {#     "userName" : "brianlilley"#  },#  "_score" : 0.076713204,#  "_index" : "test",#  "_id" : "fGgTITKvR6GJXI_cqA4Vzg",#  "_type" : "test"#          }#       ],#       "max_score" : 0.1486337,#       "total" : 3#    },#    "timed_out" : false,#    "_shards" : {#       "failed" : 0,#       "successful" : 5,#       "total" : 5#    },#    "took" : 8# }

搜索

brianlilley
仅找到该文档:

curl -XGET 'http://127.0.0.1:9200/test/test/_search?pretty=1'  -d '{  "query" : {     "match" : {        "userName.autocomplete" : "brianlilley"     }  }}'# {#    "hits" : {#       "hits" : [#          {#  "_source" : {#     "userName" : "brianlilley"#  },#  "_score" : 0.076713204,#  "_index" : "test",#  "_id" : "fGgTITKvR6GJXI_cqA4Vzg",#  "_type" : "test"#          }#       ],#       "max_score" : 0.076713204,#       "total" : 1#    },#    "timed_out" : false,#    "_shards" : {#       "failed" : 0,#       "successful" : 5,#       "total" : 5#    },#    "took" : 4# }


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4937344.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-13
下一篇 2022-11-13

发表评论

登录后才能评论

评论列表(0条)

保存