Мы используем Elasticsearch 2.4.5. Есть приложение, которое может генерировать довольно сложные запросы. Я пытаюсь добавить поле more_like_this
к запросу следующим образом:
{
"query": {
"more_like_this": {
"fields": [
"title"
],
"ids": [
1234
],
"min_term_freq": 1,
"max_query_terms": 25
},
"function_score": {
"query": {
"bool": {
"must": [
{
"query_string": {
"default_operator": "AND",
"fields": [
"title",
"author"
],
"query": "((title:(\"Tale of Two Cities\"^2)))",
"lenient": true
}
}
],
"filter": {
"bool": {
"must": [
{
"bool": {
"should": [
{
"geo_distance": {
"distance": "50mi",
"location": {
"lat": 49.32,
"lon": -45.67
},
"distance_type": "plane",
"_cache": true
}
}
]
}
},
{
"term": {
"merged": 0
}
},
{
"bool": {
"must_not": {
"exists": {
"field": "title_type"
}
}
}
}
]
}
}
}
},
"functions": [
{
"field_value_factor": {
"field": "quality_score",
"factor": 1,
"missing": 0
}
}
]
}
},
"filter": {
"bool": {
"must": []
}
},
"sort": "_score",
"size": 20,
"from": 0
}
Я получаю ошибку failed to parse search source. expected field name but got [START_OBJECT]
при попытке запустить приведенный выше код. Когда я удаляю этот кусок кода, запрос выполняется правильно. Я просмотрел документацию и другие примеры использования more_like_this
и не могу определить, что не так с моим запросом. Я предполагаю, что это как-то связано с тем, как формируется остальная часть запроса.