search - 如何在 Apache Solr 中创建包罗万象的复制字段?
问题描述
使用下的 Solr 管理界面Schema
,我正在尝试创建一个搜索所有其他字段的包罗万象的复制字段。
当输入*
assource
和search
as 时destination
,管理界面返回:
错误处理命令
如何创建搜索所有其他字段的包罗万象的复制字段?
解决方案
在你的schema.xml
你可以有这个领域:
<field name="destination" type="text" indexed="true" stored="true" required="false"/>
<field name="country" type="text" indexed="false" stored="true" required="false" />
<field name="city" type="text" indexed="false" stored="true" required="false" />
<field name="state" type="text" indexed="false" stored="true" required="false" />
country, city and state
是源字段。
然后可以将源字段添加到目标,如下所示:
<copyField source="city" dest="destination"/>
<copyField source="state" dest="destination"/>
<copyField source="country" dest="destination"/>
或者你也可以有类似的东西作为你的源字段
<field name="destination" type="text" indexed="true" stored="true" required="false"/>
<field name="country" type="text" indexed="false" stored="true" required="false">
<field name="city" type="text" indexed="false" stored="true" required="false" />
<copyField source="*_y" dest="destination"/>
您可以为您的字段应用任何合适的字段类型destination
您还可以添加字段类型text
,如下所示。这是一个供您参考的示例。使用哪种字段类型以及使用什么tokenizer
和使用什么filters
都取决于您的要求。
<fieldType name="text" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory" />
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1" preserveOriginal="1" />
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
<filter class="solr.LowerCaseFilterFactory" />
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1" preserveOriginal="1" />
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
<filter class="solr.LowerCaseFilterFactory" />
</analyzer>
</fieldType>
推荐阅读
- python - MongoDB 在没有 $unwind 的情况下获得 $avg 的嵌套数组
- deep-learning - 斯坦福大型电影评论数据集的最高准确度是多少?
- python - 在 Django 中的项目下列出我的任务
- ios - 如何在swift 5中获取对象数组中存在的值索引?
- gps - 面临通过 UART 连接 GPSD 的问题
- sql - 在 SQL Server 表的多行中查找重复值
- python - Python sklearn 导入错误(DLL 加载失败:系统无法访问该文件。)
- r - R(小标题)中的参数“needs_dots”
- java - Java初学者q - 迭代ArrayList,选择+删除项目问题
- java - 在月底循环遍历 Joda Time 月份