小编use*_*982的帖子

Elasticsearch 自动完成或通过令牌自动建议

我想创建有关如何根据标记完成术语的建议,类似于 google 之类的自动完成功能,但仅使用一个标记或单词。

我想搜索将被标记化的文件名。例如,“BRAND_Connect_A1233.jpg”被标记为“brand”、“connect”、“a1234”和“jpg”。

现在我想问一些建议,例如“ Con ”。该建议应提供完整的匹配标记,而不是完整的文件名:

  • 连接
  • 轮廓
  • 概念
  • ...

“A12”的建议应该是“A1234”、“A1233”、“A1233”……

例子

使用查询、构面和过滤器工作正常。

首先,我创建了一个包含分词器和过滤器的映射:

curl -XPUT 'localhost:9200/files/?pretty=1'  -d '
{
   "settings" : {
      "analysis" : {
         "analyzer" : {
            "filename_search" : {
               "tokenizer" : "filename",
               "filter" : ["lowercase"]
            },
            "filename_index" : {
               "tokenizer" : "filename",
               "filter" : ["lowercase","edge_ngram"]
            }
         },
         "tokenizer" : {
            "filename" : {
               "pattern" : "[^[;_\\.\\/]\\d]+",
               "type" : "pattern"
            }
         },
         "filter" : {
            "edge_ngram" : {
               "side" : "front",
               "max_gram" : 20,
               "min_gram" : 2, …
Run Code Online (Sandbox Code Playgroud)

autocomplete autosuggest elasticsearch search-suggestion

5
推荐指数
1
解决办法
1221
查看次数