Точное совпадение ElasticSearch должно занимать место выше, чем нечеткое - PullRequest
0 голосов
/ 14 февраля 2020

У меня есть 2 документа.

[
      {
        "_index": "my_index",
        "_type": "_doc",
        "_id": "5e2fecb0c981b7583e7ae5bc",
        "_score": 1.0,
        "_source": {
          "id": "5e2fecb0c981b7583e7ae5bc",
          "name": "Apple",
          "url": "apple",
        }
      },
      {
        "_index": "my_index",
        "_type": "_doc",
        "_id": "5e2fecb0c981b7583e7ae5bc",
        "_score": 1.0,
        "_source": {
          "id": "5e2fecb0c981b7583e7ae5bc",
          "name": "Apple Star",
          "url": "apple-star",
        }
      }]

Теперь я хочу, чтобы sh смог найти 1 слово: "Apple" и получить документы.

Однако , что я получаю, так это то, что c с «Apple Star» появляется выше, когда я ищу «Apple».

Вот мой запрос:

{
    "query": {
        "bool": {
            "should": [{
                "match_phrase": {
                    "name": {
                        "query": "Apple",
                        "slop": 0,
                        "zero_terms_query": "NONE",
                        "boost": 10.0
                    }
                }
            }, {
                "fuzzy": {
                    "name": {
                        "value": "Apple",
                        "fuzziness": "AUTO",
                        "prefix_length": 0,
                        "max_expansions": 50,
                        "transpositions": true,
                        "boost": 1.0
                    }
                }
            }],
            "adjust_pure_negative": true,
            "boost": 1.0
        }
    }
}

Так что я пытался повысить фразу совпадения над нечетким предложением. Но я все еще получаю «Apple Star» в первом результате.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...