【Solr】- Field 域配置
时间: 2023-08-09 17:09:16 浏览: 163
在 Solr 中,Field 域是一个非常重要的概念,它决定了索引和检索的粒度。Field 域配置可以通过 Solr 的配置文件 solrconfig.xml 来进行设置。
在配置 Field 域时,需要指定以下信息:
1. Field 域的名称:这个名称需要在索引和检索时使用,通常使用小写字母和下划线组成,比如:title、content。
2. Field 域的类型:Solr 内置了很多 Field 域类型,比如 text_general、string、date 等。不同的类型对应不同的分词、存储和检索策略。
3. Field 域是否需要存储:如果需要在搜索结果中显示该 Field 域的内容,就需要将其设置为存储类型。如果不需要显示,可以设置为不存储,这样可以减小索引文件的大小。
4. Field 域的分词器:Solr 支持多种分词器,可以根据需要选择合适的分词器来进行分词。
下面是一个简单的 Field 域配置示例:
```xml
<field name="title" type="text_general" indexed="true" stored="true"/>
```
这个配置表示定义了一个名称为 title 的 Field 域,使用 text_general 类型,需要进行索引和存储。在实际应用中,需要根据具体需求进行配置。
相关问题
solr分词器IKTokenizerFactory类型导致高亮异常 Token guangz exceeds length of provided text sized 5怎么解决
这个异常的原因是在使用 Solr 进行搜索时,高亮组件需要根据查询结果进行高亮标记,但是由于使用了 IKTokenizerFactory 分词器,导致分词结果与查询结果不一致,从而出现了这个异常。
解决方法是在 Solr 的配置文件 schema.xml 中对该 Field 域进行配置,指定使用的分词器。
具体步骤如下:
1. 打开 schema.xml 文件,找到需要使用 IKTokenizerFactory 分词器的 Field 域。
2. 在 Field 域中添加以下配置:
```xml
<fieldType name="text_ik" class="solr.TextField">
<analyzer type="index">
<tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="false"/>
</analyzer>
<analyzer type="query">
<tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="true"/>
</analyzer>
</fieldType>
```
3. 将 Field 域的 type 属性设置为 "text_ik",即使用上面定义的 FieldType。
4. 重新启动 Solr,重新建立索引。
这样就可以解决高亮异常 Token guangz exceeds length of provided text sized 5 的问题了。
阅读全文