在Solr中的单个字段上启用小写搜索和docValues

时间:2016-08-26 05:44:11

标签: java solr lucene solrj cloudera-cdh

我在solr中添加了一个文本字段,以支持不区分大小写的搜索,如下所示:

<fieldType name="lower_text" class="solr.TextField" sortMissingLast="true" >
    <analyzer>
        <tokenizer class="solr.KeywordTokenizerFactory"/>
        <filter class="solr.LowerCaseFilterFactory"/>
    </analyzer>
</fieldType>

并定义了一个字段:

<field name="accountname" type="lower_text" indexed="true" stored="true" required="false"/>

我的表现方面和索引变得越来越大。为了改进方面和排序性能,我想实现docValues和流聚合。 。

Solr实际上不允许我在文本字段中添加docValues选项,我唯一的选择就是有一个辅助字段,一个用于小写文本,一个用于doc值。

我们可以将docValues应用于文本字段吗?我们可以使用区分大小写的功能搜索String吗?如果我通过添加2个字段来支持docValues和in-sensitive,那么我的索引大小会怎样?

仅供参考:我已经为我的solrconfig.xml和我的solr服务器添加了导出功能。版本为solr 4.10.3 CDH 5.5.4

1 个答案:

答案 0 :(得分:0)

Solr目前不支持分析字段的DocValues。关于这个问题有一个JIRA,但解决它并非易事:https://issues.apache.org/jira/browse/SOLR-8362

有两个并行字段(使用copyField机制),一个用于搜索,一个用于分面,是现在的方法。您的索引大小会有所增长,因为索引和DocValued术语之间没有重复使用。