Elasticsearch - edgeNGram自动补全

Posted 席飞剑

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Elasticsearch - edgeNGram自动补全相关的知识,希望对你有一定的参考价值。

现代搜索离不开自动补全功能。正是有了该功能,用户可以方便地找到那些不知如何拼写的条目。

看如下索引配置:


"settings":
    "analysis":
         "analyzer":
             "standardWithEdgeNGram":
                 "tokenizer": "standard",
                 "filter": ["lowercase", "edgeNGram"]
             
         ,
         "tokenizer":
             "standard":
                 "type": "standard"
             
         ,
         "filter":
             "lowercase":
                "type": "lowercase"
            ,
            "edgeNGram":
                "type": "edgeNGram",
                "min_gram": 2,
                "max_gram": 15,
                "token_chars": ["letter", "digit"]

           
       
   
,
"mappings":
    "test":
        "_all":
            "analyzer": "standardWithEdgeNGram"
        ,
        "properties":
            "Name":
                "type": "string",
                "index_analyzer": "standardWithEdgeNGram"
               "index": "analyzed","search_analyzer":"standard"
                   
  



min_gram:长度小于此参数值的词条将不会被生成。这个值直接影响了进行提示所需的最小字符个数。

max_gram:分词器会忽略长度超过此参数值的词条。这是可用提示的最大字符个数。我们假设越长的查询越不需要提示,因为用户很可能已经知道了自己想要的查询目标了。


以上是关于Elasticsearch - edgeNGram自动补全的主要内容,如果未能解决你的问题,请参考以下文章

[Elasticsearch] 向已存在的索引中加入自己定义filter/analyzer

使用 NEST 创建自定义令牌过滤器

Elasticsearch 教程

Elasticsearch 基本概念

Elasticsearch 教程

Elasticsearch 基本概念