我使用Solr已经有一段时间了,请告诉我,我已经声明了反向WildCard过滤器,但是没有任何字段被声明/关联到类型“textReverse”&没有复制字段将值复制到其中任何一个。然而,使用领先的通配符搜索是有效的!
如果字段类型为“textReverse”来启用领先的通配符搜索,这不是一种规范吗?
只要让这份声明奏效,
<fieldType name="textReverse" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.ReversedWildcardFilterFactory" withOriginal="true" maxPosAsterisk="3" maxPosQuestion="2" maxFractionAsterisk="0.33"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>例如,不必实际声明该类型的字段,
<field name="fooColumn" type="textReverse" indexed="true" stored="true" omitNorms="true"/>但我确实有'fooColumn‘作为'text’类型(字段类型没有反向通配符过滤器)。)
在理解上有差距吗?
发布于 2011-12-15 10:26:26
ReversedWildcardFilterFactory支持更快的引导通配符查询--这样的查询即使没有这个过滤器也能正常工作。您可以通过从您的配置中删除字段类型声明,然后使用引导通配符触发几个查询来确认这一点。
看看solr.ReversedWildcardFilterFactory 这里的描述。如果您开始使用此筛选器,那么使用引导通配符的查询的性能应该会有很大的提高。
https://stackoverflow.com/questions/8515190
复制相似问题