Почему Elasticsearch more_like_this этот запрос возвращает один из двух дубликатов документов? - PullRequest
0 голосов
/ 07 февраля 2020

Может кто-нибудь объяснить, почему я вижу такое поведение?

Я проиндексировал кучу документов, содержащих текстовое поле. Некоторые из документов содержат дублированный текст. При выполнении запроса more_like_this возвращается только один из дубликатов документов. Эта проблема не возникает, когда индекс имеет один шард. С низким minimum_should_match процентом оба документа возвращаются. С высоким minimum_should_match процентом возвращается только один из документов. Как запрос more_like_this может соответствовать документу в одном сегменте и не соответствовать документу с идентичным текстовым полем в другом фрагменте? Разве оба документа не должны совпадать по числу терминов? Я посмотрел на планы объяснения запроса и не увидел ничего, что указывало бы на то, почему я получаю «Неверное соответствие минимальному количеству необязательных предложений» за счет уменьшения процента minimum_should_match. Документы содержат идентичный «полный текст»; почему они не соответствуют одинаковым терминам?

Вот запрос:

GET /bug/_search
{
  "query": {
    "more_like_this": {
      "fields": [
        "fullText"
      ],
      "like": [
        {
          "_id": "6a0ce51874a777ea7772009d30e2c5f4eb3f0c58",
          "_index": "bug"
        }
      ],
      "max_query_terms": 100,
      "minimum_should_match": "75%",
      "min_doc_freq": 0,
      "min_term_freq": 0,
      "include": true
    }
  },
  "size": 100
}

Среда :asticsearch 6.8.0

...