在我的情况下,索引已经完成,但它没有通过文本搜索给出任何结果。它通过将*:*
作为搜索字词来显示一般索引数据。
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>
`
任何帮助将不胜感激。
答案 0 :(得分:1)
q=*:*
搜索所有文档的所有内容,因此您可以获得结果。
q=something
将在默认搜索字段中搜索某些内容,如果您尚未修改schema.xml,则通常是文本。
<defaultSearchField>text</defaultSearchField>
您可以将默认字段更改为要搜索的字段。 或使用特定字段搜索特定字段,例如su_url q = su_url:url
如果要搜索多个字段,可以使用复制字段将字段合并到一个字段中,或使用dismax request handler。