将Elasticsearch作为带有AND和OR的多个术语的术语查询进行查询

时间:2018-11-02 21:23:11

标签: elasticsearch lucene elasticsearch-5

我有一种情况,我想从弹性体获得具有以下任意一种文本的结果:

  1. “三星s8”
  2. “西尔维拉多”
  3. “轮辋”
  4. “乒乓”

正如在这里看到的那样,“三星s8 /”乒乓球”是二元组,应该具有AND逻辑,因为我想要这两个术语。

有没有办法做到这一点?现在,我形成一个像这样的弹性查询,这显然是错误的,因为它可以给出具有“ s8”而不是“ samsung”的结果。

"must": [
        {
          "query_string": {
            "query": "samsung s8 silverado rims ping pong",
            "fields": [
              "category^1.0",
              "description^1.0",
              "keywords.*^0.0",
              "title^1.0"
            ],
            "use_dis_max": true,
            "tie_breaker": 0,
            "default_operator": "or",
            "auto_generate_phrase_queries": false,
            "max_determinized_states": 10000,
            "enable_position_increments": true,
            "fuzziness": "AUTO",
            "fuzzy_prefix_length": 0,
            "fuzzy_max_expansions": 50,
            "phrase_slop": 0,
            "escape": false,
            "split_on_whitespace": true,
            "boost": 1
          }
        }
      ],

0 个答案:

没有答案