Тег Lucene Поиск проблем с C #, проблемы с выходом? - PullRequest
2 голосов
/ 14 января 2011

Я использую lucene 2.9.2 (в .NET нет lucene 3)

"tag: C #" Получает те же результаты, что и "tag: c".Как мне разрешить "C #" быть поисковым словом?я попытался изменить Field.Index.ANALYZED на Field.Index.NOT_ANALYZED, но это не дало мне результатов.

Я предполагаю, что мне нужно экранировать каждый тег, как я могу это сделать?

Ответы [ 2 ]

4 голосов
/ 14 января 2011

Проблема не в запросе, а в используемом вами анализаторе запросов, который удаляет «#» как из запроса, так и (если вы используете один и тот же анализатор для вставки - которым вы должны быть) и поля.

Вам потребуется найти анализатор, который сохраняет такие специальные символы, или написать собственный.

Редактировать: Выезд KeywordAnalyzer - это может просто помочь:

"Токенизирует" весь поток как один токен. Это полезно для таких данных, как почтовые индексы, идентификаторы и некоторые названия продуктов.

1 голос
/ 20 января 2011

Согласно Java-документации для Lucene 2.9.2 '#' не является специальным символом, который необходимо экранировать в Query. Можете ли вы проверить (то есть, открыв индекс с помощью Luke ), как на самом деле значение C # сохраняется в индексе?

...