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

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

org.apache.solr.core.SolrCore; [collection1] webapp = / solr path = / select params = {indent = true&q = LG&_ = 1397953906088&wt = json} hits = 0状态= 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,名称和说明的对应条目:

4, Television, LG

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

谢谢。

===============>>#1 票数:0

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

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

您应该将复制字段定义为

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

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

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

文本

对于这种特殊情况。

然后,您可以搜索它而无需指定特定字段。

关于第二个疑问

b / w的'P'和'p'有所不同。 由于您将descpt用作字符串字段,因此它将与确切的表达式匹配。 因此,如果您搜索descpt:Phone,它将可以使用

  ask by drunkenfist translate from so

未解决问题?本站智能推荐: