日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Solrj实现增删改查

發布時間:2024/9/30 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Solrj实现增删改查 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、準備

在 solrhome/collection1/conf/schema.xml 配置文件中定義相關的字段。

<!--name:該字段的名稱。type:fieldType 字段對應的名稱。"text_ik" 是我自定義的一個字段類型,并配置了中文分詞器。 --> <field name="product_name" type="text_ik" indexed="true" stored="true"/> <field name="product_price" type="float" indexed="true" stored="true"/> <field name="product_description" type="text_ik" indexed="true" stored="false" /> <field name="product_catalog_name" type="string" indexed="true" stored="true" /><!--當從 "product_keywords" 字段搜索時,會搜索 "product_name" 和 "product_description"字段。 --> <field name="product_keywords" type="text_ik" indexed="true" stored="false" multiValued="true"/> <copyField source="product_name" dest="product_keywords"/> <copyField source="product_description" dest="product_keywords"/>

這里通過新建 Maven 項目完成測試,在pom.xml中添加對應的依賴:

<!-- 這里使用 7.2.1 的版本 --><dependency><groupId>org.apache.solr</groupId><artifactId>solr-solrj</artifactId><version>7.2.1</version></dependency><!-- 添加 Junit 測試的依賴 --><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.11</version><scope>test</scope></dependency>

二、測試增刪改

增刪改相對來說比較簡單,這里放在一起進行測試,Solr 中沒有提供專門的修改方法,會根據 id 在文檔中查找,如果沒有找到就是添加,找到了就會覆蓋原來的數據,即修改。

2.1新增與修改

編寫 Java 代碼:

@Testpublic void indexCreateTest() throws Exception {// 創建和Solr 服務端的連接,并指定 Solr 實例是 "collection1"SolrClient client = new HttpSolrClient.Builder("http://192.168.248.136:8080/solr/collection1").build();// 創建 Solr 文檔對象SolrInputDocument document = new SolrInputDocument();// 向文檔對象中添加指定字段對應的字段值,字段必須先定義后使用,且必須要有 id 字段// 如果是修改,只需要固定 id 字段的值,修改其他的字段即可document.addField("id", "a1");document.addField("product_catalog_name", "幽默雜貨");document.addField("product_price", "20");document.addField("product_name", "小王子");// 將文檔添加到 client 對象中client.add(document);// 提交client.commit();}

在瀏覽器端進行驗證:

2.2刪除

編寫 Java 代碼:

@Testpublic void indexDelTest() throws Exception {SolrClient client = new HttpSolrClient.Builder("http://192.168.248.136:8080/solr/collection1").build();// 根據 id 刪除// client.deleteById("a1");// 根據查詢刪除, *:* 表示刪除所有client.deleteByQuery("product_name:小王子");client.commit();}

這里就不在瀏覽器驗證了。

三、測試查詢

相對于增刪改操作,往往需要我們做的是查詢操作。查詢操作也相對比較復雜,有關查詢的設置,可以在瀏覽器端查看,只要在代碼中設置即可。

查詢高亮的結果比較麻煩,這里將瀏覽器端的查詢結果貼出來,希望能幫助大家更好理解高亮數據的獲取方式。需要高亮顯示的字段是:product_name,查詢關鍵字是:小王子。

編寫 Java 代碼:

@Testpublic void indexSearchTest() throws Exception {SolrClient client = new HttpSolrClient.Builder("http://192.168.248.136:8080/solr/collection1").build();// 創建查詢對象SolrQuery query = new SolrQuery();// 設置默認搜索字段,如果不指定搜索的字段,則從默認字段中搜索query.set("df", "product_keywords");// 指定搜索域與搜索的關鍵字query.setQuery("product_name:小王子");// 如果不定搜索域,則從默認搜索域中搜索,如下//query.setQuery("手機");// 設置搜索的過濾器,只搜索"product_price" 在 10-20 之間的query.addFilterQuery("product_price:[15 TO 30]");// 設置起始的條數,默認是 0query.setStart(0);// 設置查詢的條數,默認是 10 query.setRows(5);// 設置高亮query.setHighlight(true);// 設置顯示高亮的字段query.addHighlightField("product_name");// 設置高亮字段值的前綴query.setHighlightSimplePre("<span style=\"color:red\">");// 設置高亮字段值的后綴query.setHighlightSimplePost("</span>");// 獲得查詢結果的響應對象QueryResponse response = client.query(query);// 從響應對象中獲得結果集對象SolrDocumentList list = response.getResults();System.out.println("查詢到的總記錄數:" + list.getNumFound());// 遍歷結果集for (SolrDocument document : list){System.out.println("product_price : " + document.get("product_price"));System.out.println("product_name : " + document.get("product_name"));// 從響應對象中獲得高亮,并處理Map<String, Map<String, List<String>>> map = response.getHighlighting();List<String> lightList = map.get(document.get("id")).get("product_name");if(lightList != null && lightList.size() > 0) {System.out.println("high lighting product_name : " + lightList.get(0));}System.out.println("==================================");}}

查詢結果輸出:

(完)

總結

以上是生活随笔為你收集整理的Solrj实现增删改查的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。