【发布时间】:2017-07-08 17:49:02
【问题描述】:
我从 elasticsearch 2.0 迁移到 5.2,现在 ngram 搜索被破坏了!
elasticsearch 设置就在下面,它只是一个简单的用于标题和摘要字段的 ngram 标记器。
settings = {
"settings": {
"number_of_shards": 1,
"number_of_replicas": 0,
"analysis": {
"filter": {
"ngram_filter": {
"type": "nGram",
"min_gram": 3,
"max_gram": 10
}
},
"analyzer": {
"search_ngram_analyzer": {
"tokenizer": "standard",
"type": "custom",
"filter": ["standard", "lowercase", "stop", "asciifolding"]
},
"index_ngram_analyzer": {
"tokenizer": "standard",
"type": "custom",
"filter": ["standard", "lowercase", "stop", "asciifolding", "ngram_filter"]
}
}
},
},
"mappings": {
"docs": {
"properties": {
'title': {
'boost': 100.0,
'search_analyzer': 'search_ngram_analyzer',
'analyzer': 'index_ngram_analyzer',
'type': 'text',
},
'summary': {
'boost': 20.0,
'search_analyzer': 'search_ngram_analyzer',
'analyzer': 'index_ngram_analyzer',
'type': 'text',
}
}
}
}
}
http://localhost:9200/my_index/_search?q=example 返回包含单词“example”的文档。作为普通查询。
然而,
http://localhost:9200/my_index/_search?q=exampl(以“e”为例)返回一个空对象!
我在我的设置中没有发现错误。这是 API 中断吗?
【问题讨论】:
标签: elasticsearch