Я пытаюсь настроить индекс Solr с некоторыми данными, однако я хотел бы отправить одно из моих полей в виде разделителя каналов и разделить его на конце Solr, например,
<doc>
<add>
<field name="cat">a|b|c<field>
</add>
</doc>
Для многозначного поля, объявленного как
<field name="cat" type="str_split_on_pipe" indexed="true" stored="true" multiValued="true" omitNorms="true" />
И разделение по типу трубы:
<fieldType name="str_split_on_pipe" class="solr.TextField" positionIncrementGap="100" >
<analyzer type="index">
<tokenizer class="solr.PatternTokenizerFactory" pattern="\|\s*" />
<filter class="solr.LowerCaseFilterFactory"/>
<!--<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="0"/>-->
<!-- this filter can remove any duplicate tokens that appear at the same position - sometimes
possible with WordDelimiterFilter in conjuncton with stemming. -->
<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.PatternTokenizerFactory" pattern="\|\s*" />
<filter class="solr.LowerCaseFilterFactory"/>
<!--<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="0"/>-->
<!-- this filter can remove any duplicate tokens that appear at the same position - sometimes
possible with WordDelimiterFilter in conjuncton with stemming. -->
<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
</analyzer>
</fieldType>
Я ожидал бы, что это будет так же, как если бы я отправлял документ с тремя разными cat
полями, однако, похоже, он мало что делает, а просто возвращает мой разделенный конвейерами список.
Возможно ли то, что я пытаюсь сделать, и если да, то где я ошибся?
Спасибо,
Амар