Я включил эластичный поиск в приложение ROR.
Я использую эластичный поиск, чтобы найти продукты с именем 'xyz' и отфильтрованные по количеству звездочек = 1
Это мое отображение:
{
:product => {
:dynamic => false,
:properties => {
:name => {
:analyzer => "english",
:type => "text"
},
:description => {
:analyzer => "english",
:type => "text"
},
:available => {
:type => :boolean
},
:last_updated => {
:type => :date
},
:categories_names => {
:type => "text"
},
:stars => {
:type => :integer
}
}
}
}
Я использую следующий запрос:
{
"query": {
"bool": {
"must": [
{
"multi_match": {
"query": "xyz",
"fields": ["name", "description"],
"type": "most_fields"
}
},
{
"match": {
"available": true
}
}
],
"filter": {
"term": {
"stars": 1
}
}
}
}
}
Это не дает мне соответствия, но у меня есть записи о продуктах со звездами, имеющими значение 1.
Кроме того, запрос диапазона не дает никаких результатов со звездами поля.
Эта запись должна соответствовать указанному выше запросу:
#<Product> {
"id" => 90,
"name" => "xyz",
"last_updated" => Tue, 22 May 2018 15:04:43 UTC +00:00,
"stars" => 1,
"description" => "training",
"available" => true,
"created_at" => Thu, 21 Jun 2018 11:56:15 UTC +00:00,
"updated_at" => Fri, 29 Jun 2018 10:30:06 UTC +00:00,
}