Elasticsearch Больше не нравится результат

Я пытаюсь выяснить, как работает запрос More like this (ES 2.X). Я создал следующий индекс с термином вектор.

PUT /test_index
{
   "settings": {
      "number_of_shards": 1,
      "number_of_replicas": 0
   },
   "mappings": {
      "doc": {
         "properties": {
            "text": {
               "type": "string",
               "term_vector": "yes"
            }
         }
      }
   }
}

PUT /test_index/doc/1
{
    "text": ["Hello","World"]
}

PUT /test_index/doc/2
{
    "text": ["This","is","me"]
}

PUT /test_index/doc/3
{
    "text": ["Hello","World"]
}

PUT /test_index/doc/4
{
    "text": ["Hello","World","World"]
}

Почему следующие запросы не дают результата? Со вторым запросом я ожидал получить по крайней мере документ 3, который имеет те же значения документа 1.

POST /test_index/doc/_search
{
   "query": {
      "more_like_this": {
         "like": "Hello",
         "min_term_freq": 1
      }
   }
}

POST /test_index/doc/_search
{
   "query": {
      "more_like_this": {
         "fields": [
            "text"
         ],
         "like": [
            {
               "_index": "test_index",
               "_type": "doc",
               "_id": "1"
            }
         ]
      }
   }
}

1 ответ

Решение

По умолчанию min_doc_freq 5, значит, ваш запрос не работает, потому что ваш индекс не содержит как минимум 5 документов, чьи term свойство имеет желтый цвет. Итак, установите min_doc_freq до 1 в вашем запросе, и это должно работать.

{
    "query": {
        "more_like_this": {
            "like": "Hello",
            "min_term_freq": 1,
            "min_doc_freq": 1
        }
    }
}
Другие вопросы по тегам