查询:国家公共(public)广播电台/电视
也就是说,匹配查询 National Public Raido
或 National Public TV
。我想知道如何在elasticsearch
中执行这样的任务? 该任务是用 Python 完成的。
我尝试过的:
bool 查询“国家公共(public)广播电台”
from elasticsearch import Elasticsearch
es_conn = Elasticsearch(config.ES_HOSTS)
res = es_conn.search(index = config.INDEX_NAME,
body={
"_source": ["filename"],
"query": {
"match" : {
"text" : {
"query" : "National Public Radio",
"operator" : "and"
}
}
}
}
)
bool 查询“Radio OR TV”
res = es_conn.search(index = config.INDEX_NAME,
body={
"_source": ["filename"],
"query": {
"match" : {
"text" : {
"query" : "Radio TV",
}
}
}
}
)
但是如何将这两者结合起来,我不知道,有人可以帮忙吗?
您可以使用以下查询来检查查询文本是否与国家公共(public)电视台或国家公共(public)广播电台匹配。它使用了应该运算符,并且最小数量应该匹配等于一,确保文本应该匹配这两者之一。
{
"query": {
"bool": {
"should": [
{
"match": {
"text": {
"query": "National Public Radio"
}
}
},
{
"match": {
"text": {
"query": "National Public TV"
}
}
}
],
"minimum_should_match" : "1"
}
}
}
我是一名优秀的程序员,十分优秀!