您好,我在 Elasticsearch 中感到困惑。如果未将参数赋给方法,那么如果参数不为空,则代码可以正常工作,我该如何处理该 bool(boolean) 查询。
def elastic_search(category=None):
client = Elasticsearch(host="localhost", port=9200)
query_all = {
'size': 10000,
'query': {
"bool": {
"filter": [
{
"match": {
"category": category
}
}]
},
}
}
resp = client.search(
index="my-index",
body=query_all
)
return resp
最佳答案
如果category为None,则需要使用match_all
。只需根据category的值有条件地构建查询即可。
这样的事情应该做
def elastic_search(category=None):
client = Elasticsearch(host="localhost", port=9200)
query_all = {
'size': 10000,
'query': {}
}
if category is None:
query_all['query']['match_all'] = {}
else:
query_all['query']['bool'] = {
"filter": [
{
"match": {
"category": category
}
}
]
}
resp = client.search(
index="my-index",
body=query_all
)
return resp
关于python - Elasticsearch 条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63290916/