码头上的solr配置

时间:2012-06-07 07:12:02

标签: java search solr jetty

在我的情况下,索引已经完成,但它没有通过文本搜索给出任何结果。它通过将*:*作为搜索字词来显示一般索引数据。

solrconfig.xml:

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

schema.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>`

data-config.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>

`

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

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

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

<defaultSearchField>text</defaultSearchField>

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

如果要搜索多个字段,可以使用复制字段将字段合并到一个字段中,或使用dismax request handler