Как я могу использовать поиск elastics для поиска людей, относящихся к определенному возрасту? Итак, если я вхожу в возраст 28 лет, я хочу, чтобы люди, которым было 28, имели самый высокий балл, но также хотят, чтобы люди, которым показано 27, были показаны, но с более низким счетом. Дата рождения хранится в следующем формате yyyy-mm-dd, поэтому мне придется преобразовать возраст на сегодняшний день, но это не проблема.Используйте Elasticsearch, чтобы найти записи с датой около определенной даты.
У меня есть следующие до сих пор:
{
"query": {
"fuzzy": {
"birthdate": {
"value": "1985-10-01",
"min_similarity": "1096d"
}
}
}
}
min_similarity из 1096d означает, что люди, которые родились с 1 октября 1985 года +/- 3-х лет.
Таким образом, все люди, родившиеся между 1982 и 1988 годами, показаны - это отлично работает, но все они имеют одинаковый балл 1,0. Как я могу получить самый высокий балл для записи с датой рождения, ближайшей к 1985-10-01?
Wow! Это хорошо работает! Спасибо за вашу идею, как сделать это и предоставить необходимый код! В части скрипта вашего кода есть 2 разрыва строки с «\». Чтобы получить код, мне пришлось удалить разрывы строк и косые черты. Возможно, вы удалите их из своего кода, чтобы каждый мог просто скопировать его. – oliverspies
doc ссылка нарушена :( –