使用solr搜尋時候常會出現以下問題,比如搜尋「茶油」 可以搜尋到結果,但是 茶和油之間加個空格就沒有結果了
首先你要了解產生這個原因的原理。
schema.xml
solrconfig.xmlname
schema.xml中defaultsearchfield和solrconfig.xml中df屬性都是預設搜尋欄位的意思,不過後者只針對"/select"請求。優先順序是solrconfig.xml的df高於schema.xml的defaultsearchfield。name
="/select"
class
="solr.searchhandler"
>
name
="defaults"
>
name
="echoparams"
>
explicit
name
="rows"
>
10name
="df"
>
text
設定預設搜尋欄位的效果:搜尋條件為title:隨意 問,中間的空格預設相當於or,"text"優先於"name",因此搜尋條件等價於title:隨意 or text:問,所以會搜尋不出結果。
建議解決方法:
方法1:可以將搜尋條件變為title:(隨意 問),等價於title:隨意 or title:問。
方法 2:搜尋條件不變,查詢時url加上df引數"&df=title",也可以解決。
方法3:把
name
="df"
>
text
改為你要預設的查詢字段比如改為name 搜尋"茶 油"的時候 及類似魚 name="茶" or name="油"
Solr 搜尋不為空值
1 被搜尋的列必須被索引,否則搜尋不到資料,設定schema.xml檔案中該列的indexed為true,如下 2 solr搜尋非空語法為 to 可以在搜尋url中加上過慮條件fq,如下面表示只搜尋picurl不為null的資料 http localhost 8070 sale api.htm?in...
解決solr無法加core
提示缺少配置檔案 error createing solrcore new core unable to create core new core caused by can t find resource solrconfig.xml in classpath or usr local solr7...
solr 搜尋架構優化
將現在架構大小索引方式,乙個大索引有幾千萬資料 小索引幾萬資料,還有另乙個結點有三百萬左右資料,現在每天有900萬左右的請求量,已經可以達到90 以上在100ms以下響應。但還是有少許的搜尋可能達到了兩秒以上,還有乙個就是現在索引是放在共享記憶體裡,如果那天這兩台神機沒有了話就比較麻煩,這次的公升級...