5
Próbuję nauczyć się Elasticsearch, aby dodać go do mojej aplikacji Rails. Chcę wykonać multi_match zapytanie na 2 pola (tak jakby były one tylko jedno pole), a także mieć filtr do innego pola (status), który musi być równa 1.ElasticSearch z multi_match AND bool
response = Wine.search({
query: {
multi_match: {
query: "test",
fields: ["winery", "name"]
},
bool: {
must: {
term: { status: 1 }
},
should: [],
minimum_should_match: 1
}
}
})
Błąd jest:
"fields\":[\"winery\",\"name\"]},\"bool\":{\"must\":{\"term\":{\"status\":1}},\"should\":[],\"minimum_should_match\":1}}}]]]; nested: ElasticsearchParseException[Expected field name but got START_OBJECT \"bool\"]; }]","status":400}
Co jest nie tak w żądaniu? Jak wykonać multi_match AND BOOL razem?
Doskonała odpowiedź! Dzięki ! –
Niestety odpowiedź nie jest już ważna dla ElasticSearch 5.x, zaktualizowana strona dokumentacji również nie pomaga. Czy wiesz, jak przekonwertować zapytanie multi_match na nowe zapytania "bool" z filtrami? – Overbryd
Zaktualizowałem odpowiedź za pomocą kwerendy, która będzie działać z Elasticserarch 5.x. Więcej informacji można znaleźć w dokumentach dotyczących zapytań bool: https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-bool-query.html#query-dsl-bool-query –