2

假设我有用户输入的以下查询字符串 - “深蓝色鞋子和水洗”

product_description基本上我想在ORproduct_title字段中搜索“深蓝色鞋子”和“水洗” 。

“深蓝色鞋子或可水洗”也是如此,因此不要使用“和”运算符,而是使用“或”运算符。

是否可以使用“和/或”运算符向 Elasticsearch 提供多个短语

如果这很重要,我正在使用 v7.1。

4

1 回答 1

1

您可以在文本本身中使用Query_string和传递运算符

数据:

{
        "_index" : "index72",
        "_type" : "_doc",
        "_id" : "p7_JqHABcSMy6UhGDmtS",
        "_score" : 1.0,
        "_source" : {
          "product_description" : "dark blue shoes water washable"
        }
},
{
        "_index" : "index72",
        "_type" : "_doc",
        "_id" : "qL_JqHABcSMy6UhGbWsn",
        "_score" : 1.0,
        "_source" : {
          "product_description" : "dark blue"
        }
}

询问:

{
    "query": {
        "query_string" : {
            "fields" : ["product_description", "product_title"],
            "query" : "dark blue shoes AND water washable"
        }
    }
}

结果:

{
        "_index" : "index72",
        "_type" : "_doc",
        "_id" : "p7_JqHABcSMy6UhGDmtS",
        "_score" : 2.0794973,
        "_source" : {
          "product_description" : "dark blue shoes water washable"
        }
}
于 2020-03-05T03:46:21.713 回答