Расширенный синтаксический анализатор запросов Dismax избегает замены нескольких пробелов одним пробелом
Я использую расширенный парсер Dismax Query в нашей настройке. Я выполняю следующий запрос, чтобы получить документы, связанные с определенной компанией
_query_:"{!edismax qf='company' q.op='OR'}(\"the procter & gamble company\")"
Для некоторых проблем с нашей логикой индексации у нас есть несколько пробелов в этой компании, названной компанией procter & gamble
Когда я запускаю запрос выше, он не дает никаких результатов, так как парсер edismax заменяет несколько пробелов одним пробелом. Ниже приведен фрагмент отладочной информации.
"rawquerystring": "_query_:\"{!edismax qf='company' q.op='OR'}(\\\"the procter & gamble company\\\")\"",
"querystring": "_query_:\"{!edismax qf='company' q.op='OR'}(\\\"the procter & gamble company\\\")\"",
"parsedquery": "(+DisjunctionMaxQuery((company:the procter & gamble company)))/no_coord",
"parsedquery_toString": "+(company:the procter & gamble company)",
"QParser": "LuceneQParser",
"explain": {}
Я использую filetype в качестве lower_string для полевой компании. Ниже приводится определение анализатора.
<fieldType name="lower_string" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.KeywordTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.KeywordTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
Любые предложения о том, как я могу сказать парсеру EdisMax не заменять несколько пробелов?