考虑以下短语:lorem ipsum quid
。
我想查询多个字段,并且更喜欢所有单词都出现的答案。换句话说,我不想忽略某些单词,我想增强考虑所有单词的查询。
我可以通过执行simple_query_string
并在每个单词之前添加+
来实现此目标:
query: {
simple_query_string: {
query: "lorem +ipsum +quid",
default_operator: "and",
fields: ["f1", "f2", "f3"]
}
}
看起来还是很奇怪,它迫使我编辑用户查询并通过正则表达式用+
替换空格,这是一种修补。
elasticsearch是否有一种方法可以强制(在匹配或multi_match或我不知道的事情中)考虑每个单词?
答案 0 :(得分:1)
不确定这是否能完成您的工作,但可以尝试在term
内部must
{
"query": {
"bool": {
"must": [
{
"term": {
"f1": "lorem ipsum quid"
}
},
{
"term": {
"f2": "lorem ipsum quid"
}
},
{
"term": {
"f3": "lorem ipsum quid"
}
}
]
}
}
}