Поиск по числовым полям - PullRequest
3 голосов
/ 04 апреля 2011

В Lucene я хотел бы создать «нечеткий» запрос для числовых полей.В настоящее время я нашел только класс NumericRangeQuery для поиска по числовым полям.В создаваемом мною приложении пользователь должен указать набор типов и количество объектов этого типа, которые он хотел бы встретить в определенной коллекции.Например, пользователь может запросить «4 ложки, 13 вилок и 1 нож».

Мне потребуется запрос, который оценивает каждое числовое поле на основе расстояния желаемой суммы и фактической суммы.Например, оценка = (расстояние + 1) ^ - 1 должна дать хорошие результаты.Есть ли простой, эффективный способ сделать это?

1 Ответ

1 голос
/ 10 апреля 2011

A Полезная нагрузка должна делать то, что вы хотите. Он позволяет вам присоединять произвольные данные к каждому из ваших терминов, которые затем можно найти во время поиска, чтобы произвести оценку, сравнение и сортировку.

В частности, посмотрите на PayloadNearQuery .

Из примера, который вы описали, однако, это немного двусмысленно относительно того, что именно вам нужно делать. например числа 4, 13 и 1 имеют какое-либо отношение к числу попаданий для запроса на ложки, вилки и нож? Или вы храните эти цифры в индексе?

...