Как сортировать по полю Lucene.Net и игнорировать обычные стоп-слова, такие как «a» и «the»? - PullRequest
1 голос
/ 15 сентября 2008

Я нашел, как сортировать результаты запроса по заданному полю в индексе Lucene.Net вместо оценки; все, что требуется, это поле, которое индексируется, но не маркируется. Однако я не смог понять, как отсортировать это поле, игнорируя такие стоп-слова, как «a» и «the», чтобы, например, следующие названия книг сортировались в порядке возрастания следующим образом:

  1. Кот в шляпе
  2. Хортон слышит, кто

Возможна ли такая вещь, и если да, то как?

Я использую Lucene.Net 2.3.1.2.

Ответы [ 5 ]

1 голос
/ 16 сентября 2008

Я обертываю результаты, возвращенные Lucene, в свою собственную коллекцию пользовательских объектов. Затем я могу заполнить его дополнительной информацией / контекстной информацией (и использовать такие вещи, как класс подсветки, чтобы извлечь фрагмент совпадений), а также добавить подкачку страниц. Если вы выбрали аналогичный маршрут, вы можете создать класс / объект «result», добавить что-то вроде свойства SortBy и захватить любое поле, по которому вы хотите отсортировать, удалить все стоп-слова и сохранить его в этом свойстве. Теперь просто отсортируйте коллекцию на основе этого свойства.

0 голосов
/ 29 июля 2009

Для поиска я нашел поиск lucene .net index с опцией сортировки ссылка интересная для решения вашей проблемы

0 голосов
/ 15 сентября 2008

Прошло много времени с тех пор, как я использовал Lucene, но я думаю, что было бы добавить дополнительное поле для сортировки и хранения значения с уже удаленными стоп-словами. Вероятно, вы можете использовать те же анализаторы для генерации этого значения.

0 голосов
/ 16 сентября 2008

Кажется, что есть загвоздка в том, что вы должны маркировать поле с помощью анализатора, чтобы убрать знаки препинания и стоп-слова, но вы не можете сортировать по токенизированным полям. Как тогда убрать стоп-слова без токенизации?

0 голосов
/ 15 сентября 2008

Когда вы создаете свой индекс, создайте поле, содержащее только те слова, по которым вы хотите отсортировать, затем при получении сортируйте по этому полю, но отобразите полный заголовок.

...