首页 > 解决方案 > 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" />
...

我怎样才能让它按我的意愿工作?

标签: solr

解决方案


我解决了在 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>

推荐阅读