最近我一直试图将facet应用于一些具有多个单词(短语)的值的字段?我被建议使用带状疱疹,但我不确定这是否会按预期工作,因为所需的短语应该从给定的列表中获取。
例如:当我将facet应用于某个字段时,我会为“信息”和“技术”获得单独的方面,而我希望它是“信息技术”的单一方面。
如何在特定字段中构建特定短语?
编辑: 必填字段的架构如下所示:
<fieldType name="text_en_splitting_tight" class="solr.TextField" positionIncrementGap="100" autoGeneratePhraseQueries="true">
<analyzer>
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="lang/stopwords_en.txt"/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="0" generateNumberParts="0" catenateWords="1" catenateNumbers="1" catenateAll="0"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt"/>
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="false"/>
<filter class="solr.ShingleFilterFactory" maxShingleSize="2" outputUnigrams="true"/>
<filter class="solr.EnglishMinimalStemFilterFactory"/>
<!-- 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>
带状疱疹过滤器不起作用,因为它显示了信息技术的三个方面:信息,技术和信息技术。
答案 0 :(得分:3)
问题似乎是分析器将分面字段分割为索引。如果你想在可能有多个单词的字段上进行分面,那么我们应该使用不分割单词的分析器。它可以是&#34;复制字段&#34;在solr中,以便您的索引过程不会真正改变。例如,您可以使用下面的内容。
<field name="facet_text_en_nosplit" type="string" indexed="true" stored="false" multiValued="true"/>
在构面查询中使用上述字段。