【发布时间】:2018-03-01 06:21:46
【问题描述】:
我必须在 Apache Solr 6.6.2 中将数字从一种语言转换为另一种语言。为此,我发现模式替换过滤器可以完成这项工作。我在 Solr 架构中添加了一个带有以下过滤器的新字段
<fieldType name="text_use" class="solr.TextField">
<analyzer type="index">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StopFilterFactory" words="stopwords.txt" ignoreCase="true"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.PatternReplaceFilterFactory" pattern="0" replacement="۰"/>
<filter class="solr.PatternReplaceFilterFactory" pattern="1" replacement="۱"/>
<filter class="solr.PatternReplaceFilterFactory" pattern="2" replacement="۲"/>
<filter class="solr.PatternReplaceFilterFactory" pattern="3" replacement="۳"/>
<filter class="solr.PatternReplaceFilterFactory" pattern="4" replacement="۴"/>
<filter class="solr.PatternReplaceFilterFactory" pattern="5" replacement="۵"/>
<filter class="solr.PatternReplaceFilterFactory" pattern="6" replacement="۶"/>
<filter class="solr.PatternReplaceFilterFactory" pattern="7" replacement="۷"/>
<filter class="solr.PatternReplaceFilterFactory" pattern="8" replacement="۸"/>
<filter class="solr.PatternReplaceFilterFactory" pattern="9" replacement="۹"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StopFilterFactory" words="stopwords.txt" ignoreCase="true"/>
<filter class="solr.SynonymGraphFilterFactory" expand="true" ignoreCase="true" synonyms="synonyms.txt"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.PatternReplaceFilterFactory" pattern="0" replacement="۰"/>
<filter class="solr.PatternReplaceFilterFactory" pattern="1" replacement="۱"/>
<filter class="solr.PatternReplaceFilterFactory" pattern="2" replacement="۲"/>
<filter class="solr.PatternReplaceFilterFactory" pattern="3" replacement="۳"/>
<filter class="solr.PatternReplaceFilterFactory" pattern="4" replacement="۴"/>
<filter class="solr.PatternReplaceFilterFactory" pattern="5" replacement="۵"/>
<filter class="solr.PatternReplaceFilterFactory" pattern="6" replacement="۶"/>
<filter class="solr.PatternReplaceFilterFactory" pattern="7" replacement="۷"/>
<filter class="solr.PatternReplaceFilterFactory" pattern="8" replacement="۸"/>
<filter class="solr.PatternReplaceFilterFactory" pattern="9" replacement="۹"/>
</analyzer>
</fieldType>
在查询和索引时应用大量过滤器好不好?由于大量过滤器,系统中是否存在任何性能问题? 最后,是否可以使用正则表达式模式编写一个过滤器?如果是,那会是什么?
【问题讨论】:
-
另一个常见的问题是按多值或分析字段排序。你对结果进行排序吗?如果是,在哪些领域?这个字段是原语吗?
标签: java regex solr lucene tokenize