【问题标题】:Solr not returning results indexed from MySQLSolr 不返回从 MySQL 索引的结果
【发布时间】: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 它将起作用。

标签: mysql solr


【解决方案1】:

如果您对索引的所有元素进行通用搜索。您应该使用 copyField 将它们索引到单个字段,然后将其停用。

solr 中有类似复制字段的东西。复制字段可以将您的索引复制到一个公共字段。因此,如果您在该字段上查询,则将搜索所有数据。

您应该将复制字段定义为

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

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

请检查您在 schema.xml 中的 defaultsearchfield 标记,它应该是

文字

针对这种特殊情况。

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

关于你的第二个疑问

'P' 和 'p' 是有区别的。由于您使用 descpt 作为字符串字段,因此它将匹配确切的表达式。因此,如果您搜索 descpt:Phone 它将起作用

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-10
    相关资源
    最近更新 更多