Elasti c Поиск в текстовом поиске, не набравший больше очков за точное совпадение - PullRequest
0 голосов
/ 21 апреля 2020

Я создал приведенное ниже отображение в индексе ES:

{
  "field_to_search": {
    "type": "text",
    "fields": {
      "keyword": {
        "type": "keyword",
        "ignore_above": 256
      }
    }
  }
}

И используя запрос ниже для получения данных:

{
  "query": {
    "bool": {
      "should": [
        {
          "match": {
            "field_to_search": {
              "query": "is this test?",
              "boost": 10,
              "fuzziness": "2",
              "prefix_length": 2
            }
          }
        }
      ],
      "minimum_should_match": 1
    }
  },
  "size": 20
}

Получение результатов:

{
  "_index": "test",
  "_id": "2551",
  "_score": 70.02259,
  "_source": {
    "id": "2551",
    "field_to_search": "is this test value?",
  }
}, 
{
  "_index": "test",
  "_id": "2545",
  "_score":  61.861847,
  "_source": {
    "id": "2545",
    "field_to_search": "is this test?",
  }
},
{
  "_index": "test",
  "_id": "2355",
  "_score":  50.987878,
  "_source": {
    "id": "2355",
    "field_to_search": "is this test performance value?",
  }
}

Ожидается: это тест? до c сверху

Здесь я не получаю точное совпадение сверху. Оценка за точное совпадение меньше, чем за нечеткое совпадение. Может кто-нибудь, пожалуйста, помогите здесь?

Я пробовал нечеткий запрос с минимальным увеличением, но он не работал.

1 Ответ

0 голосов
/ 21 апреля 2020

Проводили ли вы переиндексацию ваших данных после каждого обновления сопоставления?

&explain=true обеспечит более глубокое понимание.

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