我想找到所有带有“农业”类别的书。书名或摘要字段中应包含单词“ paddy”。 这是我的查询:
GET /books/_search
{
"query": {
"bool": {
"should": [
{
"match": {
"abstract": "paddy"
}
},
{
"match": {
"title": "paddy"
}
}
],
"filter": {
"term": {
"category": "Agriculture"
}
}
}
}
}
该查询返回所有“农业”类别的书籍,即使其中是否包含单词“ paddy”。 我做错了什么?
答案 0 :(得分:3)
让我先向您解释如何,您的查询正在获取所有记录,甚至是否包含单词“ paddy”。。这是您正在使用 {{ 3}} 子句,仅表示该子句(查询)应出现在匹配的文档中。,但这并不意味着它强制必须出现,因此,它将获取索引中的所有文档,然后仅基于=SUM(ReportItems!Textbox22)
对其进行过滤。
您需要的是上层的必须子句,这意味着它必须出现,但随后我使用了嵌套的应,因为它可以是 title strong>或 abstract 字段,但这些字段中至少有一个必须包含该值,以便上层 must 子句返回true。
下面是正确的查询,根据您的使用情况,我在本地尝试并可以正常工作:
category
让我知道您是否可以解决您的问题。