我在弹性搜索中有一个查询,我检查布尔字段是否为真。 我想返回此
is_sellable
字段为 true 的所有文档。
查询布尔字段的高效方法是什么?
GET /my-index-000001/_search
{
"query": {
"bool": {
"filter": [
{
"term": {
"is_sellable": true
}
}
],
"should": [
{
"match": {
"content": {
"query": "tomas 48 coming home",
"operator": "OR",
"fuzziness": "AUTO",
"prefix_length": 3,
"max_expansions": 50,
"fuzzy_transpositions": true,
"lenient": false,
"zero_terms_query": "NONE",
"auto_generate_synonyms_phrase_query": true,
"boost": 1
}
}
},
{
"terms": {
"Name": [
"Tomas"
],
"boost": 1
}
},
{
"terms": {
"Year": [
"2023"
],
"boost": 1
}
}
],
"adjust_pure_negative": true,
"boost": 1
}
}
}
就布尔字段而言,您的示例看起来不错。只要该字段映射为布尔值并建立索引(默认情况下已建立索引),它应该会很快。虽然您查询的
should
部分提出了一些问题,但在不完全了解您的映射和用例的情况下很难提出建议。