是否可以为子令牌(通过分析器生成的令牌)设置默认运算符?当前似乎默认为OR,并且设置operator
不起作用。
我正在使用validate API来查看Elastic Search如何理解查询:
/myIndex/mapping/_validate/query?explain=true
{
"query":{
"multi_match":{
"type":"phrase_prefix",
"query":"test123",
"fields":[
"message"
],
"lenient":true,
"analyzer":"myAnalyzer"
}
}
}
返回哪个
+(message:test123 message:test message:123)
我想要的是
+message:test123 +message:test +message:123
是否有任何方法可以执行而无需使用脚本或拆分术语并在应用程序中创建更复杂的查询?
编辑
使用operator
或minimum_should_match
并没有什么不同。
我对myAnalyzer
的弹性搜索映射是
{
"analysis":{
"filter":{
"foldAscii":{
"type":"asciifolding",
"preserve_original":"1"
},
"capturePattern":{
"type":"pattern_capture",
"patterns":[
"(\\p{Ll}+|\\p{Lu}\\p{Ll}+|\\p{Lu}+(?!\\p{Ll}+))",
"(\\d+)"
]
},
"noDuplicates":{
"type":"unique",
"only_on_same_position":"true"
}
},
"myAnalyzer":{
"filter":[
"capturePattern",
"lowercase",
"foldAscii",
"noDuplicates"
],
"tokenizer":"standard"
}
}
}