带有bool查询的Elasticsearch Span_near

时间:2017-07-11 12:29:21

标签: elasticsearch elasticsearch-5

我需要查找所有包含" London" " Gucci" & #34;时尚" 即可。但与此同时,我不是所有那些拥有这3个单词中的全部或部分(全部或2个或1个)的文件,那么根据它们的接近程度,它们的得分应该提高。即,

  1. Doc A - "伦敦很大。 Gucci是品牌"。
  2. Doc B - "伦敦很大"。
  3. Doc C - " Gucci是伦敦的时尚品牌"。
  4. Doc D - " Gucci伦敦时装秀"。
  5. 结果应按顺序排列 -

    1. Doc D(所有3个单词存在,2个单词在一起,1个单独)
    2. Doc C(存在所有3个单词,每个单独分开)
    3. 文件A(存在2个单词,每个单独分开)
    4. Doc B(存在1个字)
    5. 我正在尝试以下搜索 -

      {
      "query": {
          "bool": {
              "should": [
                  {
                      "query_string": {
                          "default_field": "transcription",
                          "query": "\"Gucci\" OR \"Chinese\" OR \"London\""
                      }
                  },
                  {
                      "span_near": {
                          "clauses": [
                              {
                                  "span_term": {
                                      "transcription": "Gucci"
                                  }
                              },
                              {
                                  "span_term": {
                                      "transcription": "Chinese"
                                  }
                              },
                              {
                                  "span_term": {
                                      "transcription": "London"
                                  }
                              }
                          ],
                          "boost": 10,
                          "slop": 50,
                          "in_order": false
                      }
                  }
              ]
          }
      },
      "highlight": {
          "fields": {
              "transcription": {
                  "type": "plain"
              }
          }
      }}
      

      但我只是根据query_string获得结果。看起来像span_near不起作用..即,文档没有基于邻近度提升。

      这里有什么问题?

0 个答案:

没有答案