solr - Solr如何将文件内容索引到多个字段?
问题描述
Solr 版本:7.3.0
我想索引文件并将提取的文本注册到多字段(单词拆分字段和二元字段)以实现搜索灵活性。
我在配置集下面写了,但它不起作用,solr 仅索引到 content_text 或 content_text_bi (仅限上定义的 fmap.content 字段)
solrconfig.xml
...
<requestHandler name="/update/extract"
startup="lazy"
class="solr.extraction.ExtractingRequestHandler" >
<lst name="defaults">
<str name="lowernames">true</str>
<str name="uprefix">ignored_</str>
<str name="fmap.meta">ignored_</str>
<str name="fmap.content">content_text</str>
<str name="fmap.content">content_text_bi</str>
<str name="captureAttr">true</str>
</lst>
</requestHandler>
...
架构.xml
...
<field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" />
<!-- docValues are enabled by default for long type so we don't need to index the version field -->
<field name="_version_" type="plong" indexed="false" stored="false"/>
<field name="_root_" type="string" indexed="true" stored="false" docValues="false" />
<field name="_text_" type="text_general" indexed="true" stored="false" multiValued="true"/>
<field name="content_text" type="text_ja" indexed="true" stored="true" storeOffsetsWithPositions="false"/>
<field name="content_text_bi" type="text_ja_bi" indexed="true" stored="true" storeOffsetsWithPositions="false"/>
<field name="filepath" type="string" indexed="true" stored="true" />
<field name="filename" type="string" indexed="true" stored="true" />
<field name="storage_id" type="pint" indexed="true" stored="true" />
...
我怎样才能让它按我的意愿工作?
解决方案
我解决了在 schema.xml 中使用 copyField。
1. 将此行添加到 schema.xml
<copyField source="content_text" dest="content_text_bi" />
2.并在 solrconfig.xml 中删除此行
<str name="fmap.content">content_text_bi</str>
推荐阅读
- excel - Excel 工作簿打开时自动运行 VBA 代码
- excel - 在范围(文本模板)中搜索字符串并从动态行替换
- r - 根据特定行排序热图
- javascript - 在 Angular 中将方括号添加到 JSON 的末尾
- javascript - 如何进行线性插值?
- css - react native如何根据图片的高宽设置边界线?
- azure - 使用 Windows 身份验证的 Azure 托管实例和数据工厂的连接问题
- java - 使用 libGDX 在 3D 游戏中有效添加纹理
- iis - 在 IIS 上运行 Vue cli 多页面
- angularjs - ng-repeat 不显示来自 localStorage 的数据