我认为我有两个查询,应返回相同数量的结果。 首先是"必须"在2个字段上使用query_string。 E.g。
{
"query": {
"nested": {
"path": "app.pub",
"query": {
"bool": {
"must": [
{
"query_string": {
"query": "wheel* chair* foot* driven*",
"fields": [
"app.pub.title.*.docdba",
"app.pub.abstract.*.docdba"
],
"default_operator": "and"
}
}
]
}
}
}
}
}
这给了我120个结果。第二个是"应该"查询,在标题字段或抽象上搜索带有通配符的相同字符串。 E.g:
{
"query": {
"nested": {
"path": "app.pub",
"query": {
"bool": {
"should": [
{
"query_string": {
"query": "wheel* chair* foot* driven*",
"fields": [
"app.pub.title.*.docdba"
],
"default_operator": "and"
}
},
{
"query_string": {
"query": "wheel* chair* foot* driven*",
"fields": [
"app.pub.abstract.*.docdba"
],
"default_operator": "and"
}
}
]
}
}
}
}
}
我在这里获得了109条结果。所以我的点击次数减少了11次。任何人都知道为什么?
答案 0 :(得分:0)
易。在第一次搜索中,我在两个字段中寻找4个单词。这意味着它匹配一个字段中没有所有搜索字词的字段,但也匹配两个字段的组合。在第二次搜索中,所有4个单词必须存在于一个字段或另一个字段中。