gpt4 book ai didi

mysql - Solr 不返回从 MySQL 索引的结果

转载 作者:行者123 更新时间:2023-11-30 00:21:41 25 4
gpt4 key购买 nike

我在 MySQL 中有 4 行,我正在从管理控制台将它们索引到 Solr 中。导入成功执行,我收到此消息“索引已完成。已添加/更新:4 个文档。已删除 0 个文档。(持续时间:01 秒)”。

接下来,当我尝试从其中一行查询某些文本时,我没有得到任何结果。我没有更改任何查询参数。这是日志文件中的条目:

org.apache.solr.core.SolrCore; [collection1] webapp=/solr path=/select params={indent=true&q=LG&_=1397953906088&wt=json} attempts=0 status=0 QTime=1

我已经更新了配置文件,如下所示:

solrconfig.xml:

<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">data-config.xml</str>
</lst>
</requestHandler>

dataconfig.xml:

<dataConfig>
<dataSource type="JdbcDataSource"
driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/test"
user="root"
password=""/>
<document>
<entity name="id"
query="select id,name,descpt from sample">
</entity>
</document>
</dataConfig>

在 schema.xml 中,我添加了相应的字段:

<field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" /> 
<field name="name" type="text_general" indexed="true" stored="true"/>
<field name="descpt" type="string" indexed="true" stored="true"/>

数据库中对应的 id、name 和 descpt 条目:

4, Television, LG

为什么我查询 LG 时没有得到任何结果?我是 Solr 的新手,所以我可能会在这里遗漏一些东西。

谢谢。

最佳答案

如果您正在对所有索引元素进行公共(public)搜索。您应该使用 copyField 将它们索引到单个字段,然后将其停用。

solr中有类似复制字段的东西。复制字段可以将您的索引复制到公共(public)字段。因此,如果您查询该字段,所有数据都将被搜索。

您应该将复制字段定义为

<copyField source="id" dest="text"/>
<copyField source="name" dest="text"/>

这里 dest 代表目标字段...检查您的 solr 发行版的默认查询字段是什么,并在目标中使用它。

请检查 schema.xml 中的默认搜索字段标记,它应该是

文字

对于这个特殊情况。

然后您可以在不指定特定字段的情况下进行搜索。

关于你的第二个疑问

“P”和“p”之间存在黑白差异。由于您使用 descpt 作为字符串字段,它将匹配精确的表达式。因此,如果您搜索 descpt:Phone 它将起作用

关于mysql - Solr 不返回从 MySQL 索引的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23177220/

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