Я пытаюсь реализовать функцию автоматического предложения с помощью solr, используя несколько полей, которые должны поддерживать разные токенизаторы. Сценарий, который я хочу выполнить, выглядит следующим образом:
Есть два поля: автор (KeywordTokenizer) и тема (StandardTokenizer), которые копируются в автозаполнение (используется как поле проверки орфографии).
<field name="author" type="phrase" indexed="true" stored="true" multiValued="false"/>
<field name="subject" type="text_general" indexed="true" stored="true"/>
<field name="autosuggest" type="text_general" indexed="true" stored="true" multiValued="true"/>
<copyField source="*" dest="autosuggest"/>
<fieldType name="phrase" class="solr.TextField" positionIncrementGap="100">
<analyzer>
<tokenizer class="solr.KeywordTokenizerFactory" />
<filter class="solr.LowerCaseFilterFactory" />
<filter class="solr.RemoveDuplicatesTokenFilterFactory" />
</analyzer>
</fieldType>
Примеры значений: Тема — «Dell boost Widescreen UltraSharp 3007WFP»; Автор - "Дель Стиллер"
Поисковый запрос: solr/select?q=de; Ожидаемый результат: Dell, Del Stiller
Результат зависит от типа поля, назначенного autosuggest. Однако мне нужно скопировать токены из каждого поля в «autosuggest» вместо копирования значений, а затем токенизатор, создающий новые токены для сопоставленных значений поля.
Я использую SOLR 4.5.1