Данные в нашем поле solr выглядят так:
<str name="property_Info_Hd">320 GB SATA 7200RPM</str>
<str name="property_Info_Hd">320GB SATA</str>
<str name="property_Info_Memory">4 GB of DDR2</str>
<str name="property_Info_Memory">2GB of DDR3</str>
Поле является динамическим ("property_ *"), поэтому в обоих случаях используется один и тот же анализатор.
В настоящее время, когдапри поиске «2 ГБ» он возвращает документы с «2 ГБ», но пропускает «2 ГБ» (пробел).
Вопрос: как установить этот тип поля в схеме, чтобы совпал с результатами ибез пробелов ?
Например:
Поиск + (property_Info_Memory :( "320gb")) должен вернуть обе первые строки выше, соответствующие "320GB" AND"320 ГБ".
Вот как устанавливается тип поля:
<fieldType name="textFilter" class="solr.TextField"
positionIncrementGap="100">
<analyzer>
<tokenizer class="solr.KeywordTokenizerFactory" />
<filter class="solr.WordDelimiterFilterFactory"
splitOnCaseChange="0"
splitOnNumerics="0"
stemEnglishPossessive="0"
catenateWords="1"
catenateNumbers="1"
catenateAll="1"
preserveOriginal="1"
generateWordParts="1"
generateNumberParts="1"/>
<filter class="solr.TrimFilterFactory" />
<filter class="solr.LowerCaseFilterFactory" />
<filter class="solr.ISOLatin1AccentFilterFactory" />
</analyzer>
</fieldType>
Я пытался использовать варианты splitOnCase и splitOnNumerics, но ни один из них не удался.Затем результаты будут соответствовать полученным с пробелами (320 ГБ) и пропущены без пробелов (320 ГБ).
Большинство документов содержат данные без пробелов, поэтому текущая настройка.
Заранее спасибо за помощь.