我的字段定义如下:
<fieldType name="textcleaning" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.PatternReplaceFilterFactory"
pattern="^\p{Punct}*(.*?)\p{Punct}*$"
replacement="$1"/>
<filter class="solr.ASCIIFoldingFilterFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.ReversedWildcardFilterFactory" withOriginal="true"/>
<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.PatternReplaceFilterFactory"
pattern="^\p{Punct}*(.*?)\p{Punct}*$"
replacement="$1"/>
<filter class="solr.ASCIIFoldingFilterFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.ReversedWildcardFilterFactory" withOriginal="true"/>
<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
</analyzer>
</fieldType>
我想在这个领域面对,但我在答案中得到了直接和反转的标记:
"\u0001fo",90671,
"of",90671,
"\u0001detinu",82915,
"united",82915,
"\u0001grebmoolb",74461,
"bloomberg",74461,
有没有办法从我的方面结果中过滤掉反转的标记?我尝试使用facet.prefix,但没有成功。
答案 0 :(得分:1)
使用具有您想要的定义的专用字段 - 即创建一个没有ReversedWildcardFilterFactory
的类似字段,并将其用于分面。您仍然可以搜索并过滤您已创建的字段。
此外,通常,您通常希望使用StrField进行分面,因为您将为生成的每个标记获得一个方面(如此处所示),但如果您的用例对于每个标记的构面都有意义价值,这个解决方案应该可以正常工作。