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
}
}
}