Поиск Lucene и символы нижнего подчеркивания

То, когда я использую Luke для поиска моего индекса Lucene с помощью стандартного анализатора, я вижу поле, которое я ищу, содержит значения формы MY_VALUE. Когда я ищу поле: "MY_VALUE" однако, запрос анализируется как поле: "мое значение"

Существует ли простой способ выйти из подчеркивания (_) символ так, чтобы это искало его?

Править:

01.04.2010 11:08 PST

Я думаю, что существует ошибка в токенизаторе для Lucene 2.9.1, и это было, вероятно, там прежде. Загрузите Luke и попытайтесь искать "BB_HHH_FFFF5_SSSS", когда существует число, следующие маркеры возвращаются:

"bb hhh_ffff5_ssss"

После некоторого тестирования я нашел, что это из-за числа. Если я ввел

"BB_HHH_FFFF_SSSS", я добираюсь

"bb hhh ffff ssss"

На данном этапе я склоняюсь к ошибке токенизатора, если присутствие числа, как не предполагается, имеет это поведение, но мне не удается видеть почему.

Кто-либо может подтвердить это?

8
задан Joshua 22 February 2019 в 15:48
поделиться

2 ответа

Не похоже, что вы использовали StandardAnalyzer для индексации этого поля. В Luke вам нужно будет выбрать анализатор, который вы использовали для индексации этого поля, чтобы правильно сопоставить MY_VALUE.

Кстати, вы можете сопоставить MY_VALUE с помощью KeywordAnalyzer.

2
ответ дан 6 December 2019 в 00:55
поделиться

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

Судя по тому, что я думаю о ваших требованиях, анализатор ключевых слов должен работать нормально с небольшими усилиями (все поле становится одним термином).

Я думаю, что некоторая путаница возникает, когда смотришь на поле вместе с Люком. Сохраненное значение - , а не , что используется в запросах, вам нужны термины. Я подозреваю, что если вы посмотрите на термины, хранящиеся в вашем поле, они будут «моим» и «значением».

Надеюсь, это поможет,

1
ответ дан 6 December 2019 в 00:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: