@Tiasar

Как правильно искать в elasticsearch с фильтрацией по аттрибутам?

Есть индекс, в нем коллекция с таким маппингом:
{
	"sitcenter": {
		"mappings": {
			"periodical": {
				"properties": {
					"access_index": {
						"type": "integer"
					},
					"category_id": {
						"type": "integer"
					},
					"keywords": {
						"type": "text"
					},
					"keywords_kk": {
						"type": "text"
					},
					"publish_date": {
						"type": "date"
					}
				}
			}
		}
	}
}

Пытаюсь искать слово автобус* при этом надо что бы access_index был равен или меньше 10
Запрос сделал такой:
{
	"size": 50,
	"query": {
		"bool": {
			"should": {
				"wildcard": {
					"keywords": {
						"value": "автобус*",
						"boost": 2
					}
				}
			},
			"filter": {
				"range": {
					"access_index": {
						"lte": 10
					}
				}
			}
		}
	}
}

Находит все что соответствует фильтру access_index <= 10, и не учитывает wildcard, если убираю filter то все ищет корректно. Что не так я делаю? Подскажите.

И еще вопрос, как к фильтру добавить условие что category_id может быть 30, 38, 49 (как в SQL IN)
  • Вопрос задан
  • 85 просмотров
Решения вопроса 1
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы