0

就我而言,索引已完成,但它没有通过文本搜索给出任何结果。它通过给出*:*搜索词来显示一般索引数据。

solrconfig.xml:

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

架构.xml:

`<field name="su_id"  type="string" indexed="true" stored="true" required="true"/> 
  <field name="su_url" type="string" indexed="true" stored="true"/>
   <field name="su_path" type="string" indexed="true" stored="true"/>
   <field name="su_actual_url" type="string" indexed="true" stored="true"/>

   <uniqueKey>id</uniqueKey>
   <defaultSearchField>su_path</defaultSearchField>`

数据配置.xml:

`<dataConfig>
  <dataSource type="JdbcDataSource" 
          driver="com.mysql.jdbc.Driver"
          url="jdbc:mysql://localhost:3306/prod_astra" 
          user="root" 
          password="xyz"/>    

  <document name="content">
    <entity name="products" 
        query="select * from search_links">
        <field column="su_id" name="su_id" />
        <field column="su_path" name="id"/>
        <field column="su_url" name="su_url"/>
    <field column="su_actual_url" name="su_actual_url" />
    </entity>
</document>

`

任何帮助将不胜感激。

4

1 回答 1

1

q=*:*搜索所有文档上的所有内容,因此您可以返回结果。

q=something将在默认搜索字段中搜索某些内容,如果您没有修改 schema.xml,通常是文本。

<defaultSearchField>text</defaultSearchField>

您可以将默认字段更改为您要搜索的字段。或使用特定字段搜索特定字段,例如 su_url q=su_url:url

如果要搜索多个字段,可以使用 copyfields 或使用dismax request handler将字段合并为一个字段。

于 2012-06-07T09:13:06.757 回答