Elasticsearch中的完成建议和确切匹配



有时我对Elasticsearch完成的行为感到有些惊讶。我已经设置了一个具有建议字段的映射。在建议字段的输入中,我提出了3个名称,ISIN和发行者的3个元素。

这是我使用的映射:

 "suggest": {
                    "type" : "completion",
                    "analyzer" : "simple"
                } 

当我想对此查询查询索引时:

{
  "suggest": {
    "my_suggestion": {
      "prefix": "FR0011597335",
      "completion": {
        "field": "suggest"
      }
    }
  }
}

我得到了结果的列表,但我的确切前缀不一定,并且在大多数情况下,确切的匹配不在顶部。

所以我想知道是否有一种方法可以提高建议中的精确匹配,并在可能的情况下进行此类确切的术语匹配。

我认为我的问题是通过使用自定义分析仪解决的:简单的分析仪对于我所拥有的条目并不方便。

"settings": {
    "analysis": {
        "char_filter": {
            "punctuation": {
                "type": "mapping",
                "mappings": [".=>"]
            }
        },
        "filter": {},
        "analyzer": {
            "analyzer_text": {
                "tokenizer": "standard",
                "char_filter": ["punctuation"],
                "filter": ["lowercase", "asciifolding"]
            }
        }
    }
},

            "suggest": {
                "type" : "completion",
                "analyzer" : "analyzer_text"
            } 

最新更新