您好,登錄后才能下訂單哦!
本篇內容主要講解“solr分詞查詢怎么使用”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“solr分詞查詢怎么使用”吧!
分詞字段:/CaseInfo/案/@DocContent
分詞器:IKAnalyzer2012
測試關鍵字:搶劫黃金
返回字段:/CaseInfo/案/@DocContent
分別插入3條數據,向DocContent插入不同的值
1、 查詢條件:*:*
查詢結果如下:
2、查詢條件:\/CaseInfo/案/@DocContent:搶劫黃金
查詢結果如下:
3、查詢條件:\/CaseInfo/案/@DocContent:"搶劫黃金"
注意:搶劫黃金加了引號。
查詢結果如下:
4、查詢條件:\/CaseInfo/案/@DocContent:搶劫 AND \/CaseInfo/案/@DocContent:黃金
查詢結果如下:
5、查詢條件:\/CaseInfo/案/@DocContent:搶劫 OR \/CaseInfo/案/@DocContent:黃金
查詢結果如下:
6、查詢條件:\/CaseInfo/案/@DocContent:搶劫 黃金
注意:搶劫與黃金中間添加空格
查詢結果為空:
由于查詢結果與solr解析的查詢語句有關,勾選界面左下角的debugQuery,可以得到對應parsedquery_toString值,如下表:
根據上表可以得到下面的分析結果
查詢語句表示查詢全部數據。
表示查詢的DocContent字段經過分詞后,必須包含“搶劫”且包含“黃金”。parsedquery_toString值中“+”表示存在操作符,要求符號“+”后面的項必須在字段中存在。經過第一張表分詞結果,兩條數據滿足要求。
a) 搶劫黃金
b) 黃金不要搶劫
加了雙引號表示完全匹配,表示查詢的DocContent字段經過分詞后,必須包含“搶劫黃金”,經過第一張表分詞結果,一條數據滿足要求。
a) 搶劫黃金
AND表示既滿足左條件又滿足右條件。DocContent字段經過分詞后,既要包含“搶劫”且包含“黃金”。兩條數據滿足要求。
a) 搶劫黃金
b) 黃金不要搶劫
OR表示或者,滿足一個條件就可以。DocContent字段經過分詞后,包含“搶劫”或包含“黃金”。三條數據滿足要求。三條結果:
a) 搶劫黃金
b) 黃金不要搶劫
c) 太陽黃太陽金搶劫
這里查詢結果為空。分析parsedquery_toString值:
+/CaseInfo/案/@DocContent:搶劫 +(+text:黃 +text:金)
表示DocContent字段分詞后必須包含“搶劫”,并且text字段必須包含“黃”與“金”才能滿足條件。由于我們沒有想text字段賦值,所以下旬結果為空。為什么會有text字段的呢?
schema.xml中
<!--<defaultSearchField>text</defaultSearchField> --> |
在solrconfig.xml中
<requestHandler name="/select" class="solr.SearchHandler"> <!-- default values for query parameters can be specified, these will be overridden by parameters in the request --> <lst name="defaults"> <str name="echoParams">explicit</str> <int name="rows">10</int> <str name="df">text</str> </lst> </requestHandler> |
schema.xml中defaultSearchField與solrconfig.xml中df屬性都是默認搜索字段的意思(注意:defaultSearchField默認是被注釋的),優先級是solrconfig.xml的df高于schema.xml中的defaultSearchField。
設置默認字段的效果,搜索條件為 \/CaseInfo/案/@DocContent:搶劫 黃金,中間的空格相當于AND,因此搜索條件等價于 \/CaseInfo/案/@DocContent:搶劫AND text:黃金 ,所以不會搜索島結果。
解決方法:
方法1:可以把條件變為 \/CaseInfo/案/@DocContent:(搶劫 黃金)。
方法2:搜索條件不變,查詢時URL加上df字段值為/CaseInfo/案/@DocContent即可。
到此,相信大家對“solr分詞查詢怎么使用”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。