我的意图是搜索一个针对多个字段的短语。弹性搜索 - 多重匹配 - 词组搜索
{
"multi_match" : {
"query" : "king of baro",
"fields" : [ "filed1", "filed2", "filed3","filed5^9","filed6",filed7^9"],
"type" : "phrase_prefix",
"boost" : 10.0,
"tie_breaker" : 0.0
}
}
上述查询返回“baroda之王”,它按预期工作。
但是,当我搜索“酒吧之王”时,它不会返回任何东西。
{
"multi_match" : {
"query" : "king of bar",
"fields" : [ "filed1", "filed2", "filed3","filed5^9","filed6",filed7^9"],
"type" : "phrase_prefix",
"boost" : 10.0,
"tie_breaker" : 0.0
}
}
总结,
Search for "king of bar" - No result
Search for "king of baro" - returns "king of baroda"
Search for "king of baroda" - returns "king of baroda"
有我丢失任何配置?
映射文件: -
http://localhost:9200/sec/_mapping/
{
"sec":{
"mappings":{
"sec":{
"properties":{
"filed1":{
"type":"string"
},
"filed2":{
"type":"string"
},
"filed3":{
"type":"string"
},
"filed4":{
"type":"string"
},
"filed5":{
"type":"string"
},
"filed6":{
"type":"string"
},
"filed7":{
"type":"string"
}
}
}
}
}
}
分析,从elasticsearch.yml
:
index:
analysis:
analyzer:
security_edge_ngram_analyzer:
alias: [security_edge_ngram_analyzer]
tokenizer: security_edge_ngram_tokenizer
tokenizer:
security_edge_ngram_tokenizer:
type: edgeNGram
你能张贴您的映射?你在这些领域使用什么分析仪? –
已添加详细信息。 – user1578872