Как заставить solr QParserPlugin не использовать токенайзер пробелов для полей ключевых слов?

У меня есть ключевое поле в схеме Solr.

<fieldType name="text_keyword" class="solr.TextField" positionIncrementGap="100">
<analyzer>
<tokenizer class="solr.SimpleKeywordTokenizerFactory"/>
</analyzer>
</fieldType>

Когда я пытаюсь найти в этом поле запрос Solr по умолчанию или запрос Dismaxcategory:(Mouse Pad) это создает запрос (category:Mouse) AND (category:Pad)

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

Добавлено: мне нужно SimpleKeywordTokenizerFactory анализировать (который является строчным без разделения пробелов) по запросу, так raw а также term парсер запросов у меня не работает

2 ответа

Вы хотите ввести этот запрос:

category:"Mouse Pad"

Синтаксис запроса уже предоставляет способ сделать это. Цитаты для фраз. Скобки означают что-то другое. Вы можете написать свой собственный анализатор запросов, если хотите, но я не рекомендую его.

Вы можете использовать TermQParserPlugin:

{! term f = category} Коврик для мыши

Помните, что анализ не выполняется, поэтому он будет работать только в том случае, если внутренним представлением вашего поля является "Коврик для мыши" (с заголовком).

Изменить (2012-04-17):

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

{! lucene} категория: коврик для мыши \

Другие вопросы по тегам