我会使用一个使用ngrams的自定义分析器。首先创建一个像这样的索引:
curl -XPUT 'localhost:9200/tests' -d '{ "settings" : { "analysis" : { "analyzer" : { "my_analyzer" : { "tokenizer" : "ngrams" } }, "tokenizer" : { "ngrams" : { "type" : "nGram", "min_gram" : "2", "max_gram" : "10" } } } }, "mappings": { "test": { "properties": { "product_name": { "type": "string", "analyzer": "standard", "search_analyzer": "my_analyzer" } } } }}'然后,您可以索引一些数据:
curl -XPOST 'localhost:9200/tests/test/_bulk' -d '{"index":{}}{"product_name": "bc"}{"index":{}}{"product_name": "cd"}{"index":{}}{"product_name": "def"}'最后,您可以像这样搜索:
curl -XPOST 'localhost:9200/tests/_search' -d '{ "query": { "match": { "product_name": "abcde" } }}'然后您将获得前两个文档
bc,
cd



