ElasticSearch - 多字段的一个子字段中的值不正确

时间:2012-11-16 17:11:07

标签: python search elasticsearch tokenize

ElasticSearch使用多字段为'name'索引我的业务文档,这样我可以权衡不同程度的名称匹配(完全匹配,多个单词之一等)。这是我的映射

的片段
"name" : {

                "type" : "multi_field",
                "fields": {
                    "name":          {"type" : "string", "store" : "yes", "index_analyzer"  : "AutoCompleteIndexAnalyzer",   "search_analyzer" : "AutoCompleteSearchAnalyzer"},
                    "exact_match":   {"type" : "string", "store" : "yes", "index_analyzer"  : "ExactMatchNameIndexAnalyzer", "search_analyzer" : "ExactMatchNameSearchAnalyzer"},
                    "auto_name":     {"type" : "string", "store" : "yes", "index_analyzer"  : "keyword",                     "search_analyzer" : "keyword"},
                 }
            },

由于它是一个多字段,我只提供一次值 - ES只是多次分析它。

所以我完全不知道“不间断”子字段如何获得完全不正确的值,而“名称”子字段是正确的。我无法理解为什么完全匹配不起作用,所以我写了一个脚本字段来给我搜索结果中的'exact_match'标记化:

"exact_match_tokenized_name": [
            "santininewyorkstyledeli"
        ],
"name": "Sal NY Pizza",
"name.auto_name": "Sal NY Pizza"

如果有人对此有任何想法,我真的很感激。

谢谢!

0 个答案:

没有答案