此刻,我只是被我的头炸死了,因为布尔查询似乎过于工程化,以至于我根本无法将其组合在一起...
我想结合使用动态数量的过滤器和可选的实际搜索查询。
所以我认为使用布尔查询是必经之路。
(通过阅读文档,我的理解是)(这就是我的“ dsl”的样子):
{
"from": 0,
"size": 10,
"sort": [
{"sortTitle": "asc"},
"_score"
],
"query": {
"bool": {
"filter": [
{
"term": {
"someBoolFlag": true
}
}
]
}
}
}
我想从那里开始,然后逐个过滤器实施过滤器。文本搜索将作为布尔过滤器的“必须”部分插入,因此从理论上讲,我最终会得到:
{
"from": 0,
"size": 10,
"sort": [
{"sortTitle": "asc"},
"_score"
],
"query": {
"bool": {
"must": {
"query_string": {
"query": "*foo*",
"fields": [
"title^2",
"description^1.5",
"keywords"
]
}
}
"filter": [
{
"term": {
"someBoolFlag": true
}
},
{
"terms": {
"someProperty": [
"someValue1",
"someValue2"
]
}
}
]
}
}
}
但是我在这里没有得到任何结果。。。我想我并不真正了解过滤和boolquery的工作原理,所以也许有人可以给我一个提示...
我真的很喜欢弹性,但是我不得不说-“查询dsl”是纯恐怖。
亲切的问候