【发布时间】:2014-04-20 00:45:13
【问题描述】:
我在 MySQL 中有 4 行,我正在从管理控制台将它们索引到 Solr。导入成功执行,我收到此消息“索引已完成。添加/更新:4 个文档。已删除 0 个文档。(持续时间:01 秒)”。
接下来,当我尝试从其中一行中查询一些文本时,我没有得到任何结果。我没有更改任何查询参数。这是日志文件中的条目:
org.apache.solr.core.SolrCore; [collection1] webapp=/solr path=/select params={indent=true&q=LG&_=1397953906088&wt=json} hits=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 的新手,所以我可能会在这里遗漏一些东西。
谢谢。
【问题讨论】:
-
意识到我需要查询“descpt:LG”。但是现在,我还有一个问题。对于列 id、name、descpt,我有另一个条目为“3、Phone、iPhone”。现在,当我搜索 descpt:phone 时,我没有看到 iPhone 的条目。如何搜索部分匹配项?
-
因为'P'和'p'有区别。由于您使用 descpt 作为字符串字段,因此它将匹配确切的表达式。因此,如果您搜索 descpt:Phone 它将起作用。