我试图运行查询,如下所示:
query = {
"filtered": {
"filter": {
"bool": {
"must_not": [{"term":{"text":"exclude_word"}}],
"must": [{"term":{"text":"include_word"}}]
}
},
"query": {
"dis_max": {
"queries": [
{"match": {"text": "search_term"}},
{"match": {"title": "search_term"}}
]
}
}
}
}
}
client.search(
{
index: 'docs',
body: {
from: start_page,
size: 10,
query: query,
highlight : {
fields : {
text : {
}
}
}
})
此查询的目的是在所有文档中搜索" search_term"并排除包含" exclude_word"的文件并且不包含" include_word"在他们的文本领域。
我的问题是它似乎没有过滤掉包含exclude_word的文档。假设" start_page"是一个变量我正在更新,并且它与寻呼前端一起正常工作。
我的文本字段将按以下格式进行分析:
"text": ["sentence 1", "sentence 2", "sentence 3"]
此外,client.search部分只是我正在使用的node.js的API,它工作正常,可以忽略。