Как заставить 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} категория: коврик для мыши \