我在索引的特定multi_match
上使用简单的type
查询。
根据以下屏幕截图,当搜索查询 Hyderabad,In 或甚至 Hyderabad,Ind 时,预期结果会显示较低的分数。在这种情况下,预期的结果是印度海得拉巴(INHYD)
编辑:以下是我更新的查询:
{
"query": {
"bool": {
"should": [
{
"match": {
"_all": {
"query": "Hyderabad, In",
"fuzziness": 4,
"prefix_length": 2,
"operator": "and"
}
}
}
]
}
}
}
以下是完整的ElasticSearch跟踪:
Elasticsearch TRACE: 2016-08-17T07:33:21Z
-> POST http://192.168.99.100:9200/shipwaves/ports/_search?size=10&from=0&default_operator=AND
{
"query": {
"bool": {
"should": [
{
"match": {
"_all": {
"query": "Hyderabad, In",
"fuzziness": 4,
"prefix_length": 2,
"operator": "and"
}
}
}
]
}
}
}
<- 200
{
"took": 8,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"failed": 0
},
"hits": {
"total": 0,
"max_score": null,
"hits": []
}
}
如何调整查询以获得更高分的预期结果?
注意:我已经了解到使用not_analyzed
索引会使这项工作成功,但我确实希望进行分析,以便像** Hydrabad这样的短语(缺少一个字母)匹配。所以我保持分析简单。
弹性搜索v2.3.5