lucene 如何在Apache Solr中只索引文档内容而不索引文本字段中的文档属性

swvgeqrz  于 2022-11-07  发布在  Lucene
关注(0)|答案(1)|浏览(244)

我使用Apache Solr 8.6在Linux中使用POST工具对文档进行索引,如Apache Solr Reference Guide中所述。
POST工具命令

bin/post -c testcore /testdocs/

文档被成功索引。现在当我搜索字符串例如:Solr Admin UI中的hello,它将返回匹配的文档,并且我还可以查看_text_字段中的文档内容,因为我已使用以下属性将内容存储在manage-schema.xml

<field name="_text_" type="text_general" multiValued="true" indexed="true" stored="true"/>

它对文档内容进行索引并存储在_text_字段中,但它也存储和显示文档属性,如_text_字段中的内容类型和其他文档类型属性。

现在,我希望这些属性不应存储在_text_字段中,而只应存储实际的文档内容。

solrconfig.xml配置文件

<requestHandler name="/update/extract" startup="lazy" class="solr.extraction.ExtractingRequestHandler">

 <lst name="defaults">
      <str name="lowernames">true</str>
      <str name="fmap.meta">ignored_</str>
      <str name="fmap.content">_text_</str>
    </lst>

</requestHandler>

如果你能进一步指导我将不胜感激。

jdzmm42g

jdzmm42g1#

您需要使用参数uprefix而不是fmap.<source_field>,以便将未知字段名称Map到将被忽略的模式字段名称(您只能使用fmap来Map已知字段名称),因此在请求处理程序中,您应该具有:

<str name="uprefix">ignored_</str>

必须在模式中定义相应的动态字段,以处理这些未知字段(以及fieldType,在使用托管模式时不知道它是否已经存在):

<dynamicField name="ignored_*" type="ignored" />

相关问题