Elasticsearch:带空格示例的自动完成搜索不起作用

时间:2018-11-01 16:22:28

标签: elasticsearch lucene whitespace n-gram

目标:

如果我有一个标题为The Hitchhikers Guide的文档,则以下搜索将显示该文档:

  • hitch
  • the hit
  • hitchhikers gu

以下搜索不会显示该文档:

  • hiker
  • uid
  • guide th

我正在关注这篇文章:https://medium.com/@davedash/writing-a-space-ignoring-autocompleter-with-elasticsearch-6c3c28e3a974

但是我似乎无法在索引/分析步骤中获得预期的结果。我在ES 5.3和6.3上尝试过。

这是我到目前为止的内容:

我的映射:

输入my_test

{
    "settings" : {
        "index":{
            "analysis":{
                "filter": {
                    "autocomplete_filter": {
                        "type": "edge_ngram",
                        "min_gram": "1",
                        "max_gram": "30"
                    },
                    "autocomplete_word_joiner": {
                        "type": "word_delimiter",
                        "catenate_all": true
                    }
                },
                "analyzer":{
                    "product_name_autocomplete_analyzer": {
                        "type": "custom",
                        "tokenizer": "keyword",
                        "filter": [
                            "lowercase",
                            "autocomplete_word_joiner",
                            "autocomplete_filter"
                        ]   
                    }
                }
            }
        }
    },
    "mappings" : {
        "doc" : {
            "properties": {
                "name": {
                    "type": "text", 
                    "store": true,
                    "analyzer": "product_name_autocomplete_analyzer",
                    "term_vector": "with_positions_offsets" 
                }
            }
        }
    }
}

然后测试分析仪:

POST my_test / _analyze

{
  "analyzer": "product_name_autocomplete_analyzer",
  "text": "the hitchhikers guide"
}

以下是令牌:

t
th
the
theh
thehi
thehit
...
thehitchikersguid
thehitchikersguide
h
hi
hit
hitc
hitch
...
hitchiker
hitchikers
g
gu
...
guide

这是意外的,因为它缺少hitchhikersghitchhikersgu

这意味着在hitchhikers gu上搜索失败,这就是我所看到的。

有什么建议吗?

0 个答案:

没有答案