gpt4 book ai didi

indexing - SOLR 不搜索某些字段

转载 作者:行者123 更新时间:2023-12-02 02:08:41 25 4
gpt4 key购买 nike

刚刚安装Solr,编辑了schema.xml ,现在正在尝试对其进行索引并使用一些测试数据进行搜索。

在我发送到 Solr 的 XML 文件中,我的字段之一如下所示:

<field name="PageContent"><![CDATA[<p>some text in a paragrah tag</p>]]></field>

那里有 HTML,所以我将它包装在 CDATA 中。

在我的 Solr schema.xml ,该字段的定义如下所示:

<field name="PageContent" type="text" indexed="true" stored="true"/>

当我运行 POSTing 工具时,一切正常,但是当我搜索我知道在 PageContent 内的内容时字段,我没有得到任何结果。

但是,当我设置<defaultSearchField>时节点到PageContent , 有用。但如果我将其设置为任何其他字段,它不会在 PageContent 中搜索.

我做错了什么吗?有什么问题吗?

<小时/>

澄清错误:

我已上传包含以下数据的“文档”:

<field name="PageID">928</field>
<field name="PageName">some name</field>
<field name="PageContent"><![CDATA[<p>html content</p>]]></field>

在我的架构中,我已将字段定义为:

<field name="PageID" type="integer" indexed="true" stored="true" required="true"/>
<field name="PageName" type="text" indexed="true" stored="true"/>
<field name="PageContent" type="text" indexed="true" stored="true"/>

还有:

<uniqueKey>PageID</uniqueKey>
<defaultSearchField>PageName</defaultSearchField>

现在,当我使用 Solr 管理工具并搜索“some name ”时,我得到了结果。但是,如果我搜索“html content ”、“html ”、“content ”或“928 ”,我不会得到任何结果

为什么?

最佳答案

您提到您的默认搜索字段设置为 PageName,我不希望搜索“内容”返回任何内容。

您可能想将“PageContent:content”放入搜索框中以查找该字段中的数据。如果您想搜索多个字段,您需要查看http://wiki.apache.org/solr/DisMaxRequestHandler 。 solr 管理控制台并不是一个可以使用所有 DisMax 搜索选项的好工具,您只需操纵 URL 即可。

无论如何,我同意上一张海报,如果您的分析设置没有正确设置来处理 HTML,您可能会得到各种意外的搜索结果。仅删除 HTML 和索引文本。

如果您希望标准查询处理程序搜索所有字段,您可以在 solrconfig.xml 中更改它(我总是添加第二个查询处理程序而不是修改“标准”。qf 字段是您想要的字段列表进行搜索。它是一个空格分隔的列表。

<requestHandler name="standard" class="solr.DisMaxRequestHandler">

<lst name="defaults">
<str name="echoParams">all</str>
<str name="hl">true</str>

<str name="fl">*</str>
<str name="qf">PageName PageContent</str>
</lst>

</requestHandler>

关于indexing - SOLR 不搜索某些字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1713141/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com