查询:National Public Radio\/TV
即匹配查询National Public Raido
或National Public TV
。我想知道如何在elasticsearch
中执行这样的任务? 任务以Python完成。
我尝试过的事情:
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"
}
}
}
}
)
res = es_conn.search(index = config.INDEX_NAME,
body={
"_source": ["filename"],
"query": {
"match" : {
"text" : {
"query" : "Radio TV",
}
}
}
}
)
但是如何将这两者结合起来,我没有任何线索,任何人都可以帮忙吗?
答案 0 :(得分:1)
您可以使用以下查询来检查查询文本是否与国家公共电视台或国家公共广播电台相匹配。它使用should运算符和最小数字应匹配等于1确保文本应该匹配这两个中的一个。
{
"query": {
"bool": {
"should": [
{
"match": {
"text": {
"query": "National Public Radio"
}
}
},
{
"match": {
"text": {
"query": "National Public TV"
}
}
}
],
"minimum_should_match" : "1"
}
}
}