SpringBoot+solr配置入門

風泊月發表於2018-06-21

1.首先solr已經配置完畢,並且含有資料

2.開始搭建工程


3.編寫配置檔案

同樣找到resources下的application.propertis檔案

叢集和單機版配置有差別

3.1單機版 需要指定solr伺服器的ip埠例項名

#配置單機版 單機版solr地址+例項名
spring.data.solr.host=http://192.168.10.101:8080/solr/collection1

3.2叢集版需要配置solr伺服器的zookeeper地址

#配置叢集版 zookeeper的地址
spring.data.solr.zk-host=192.168.10.88:2181,192.168.10.88:2182,192.168.10.88:2183

4.在測試目錄進行測試


4.1簡單測試查詢+分頁 叢集版需要強轉CloudSolrClient

@Test
	public void findPage() throws IOException, SolrServerException {
		/**
		 * 叢集版CloudSolrClient繼承自SolrClient 進行強轉
		 * 單機版不需要直接使用solrClient
		 */
		CloudSolrClient cloudSolrClient =(CloudSolrClient)solrClient;
		//設定預設的操作例項
		cloudSolrClient.setDefaultCollection("collection1");
		//設定查詢的引數
		SolrQuery query = new SolrQuery();

		query.setQuery("item_title:手機");
		query.setStart(1);
		query.setRows(20);
		//執行查詢
		QueryResponse response = cloudSolrClient.query(query);
		SolrDocumentList documentList = response.getResults();

		for (SolrDocument entries : documentList) {
			String goodsName = (String) entries.getFieldValue("item_title");
			String id = (String)entries.getFieldValue("id");
			System.out.println(id+"-->"+goodsName);
		}
	}
效果如下:
2018-06-21 11:12:51.463  INFO 8340 --- [           main] org.apache.zookeeper.ZooKeeper           : Client environment:java.compiler=<NA>
2018-06-21 11:12:51.463  INFO 8340 --- [           main] org.apache.zookeeper.ZooKeeper           : Client environment:os.name=Windows 7
2018-06-21 11:12:51.464  INFO 8340 --- [           main] org.apache.zookeeper.ZooKeeper           : Client environment:os.arch=amd64
2018-06-21 11:12:51.464  INFO 8340 --- [           main] org.apache.zookeeper.ZooKeeper           : Client environment:os.version=6.1
2018-06-21 11:12:51.464  INFO 8340 --- [           main] org.apache.zookeeper.ZooKeeper           : Client environment:user.name=Administrator
2018-06-21 11:12:51.465  INFO 8340 --- [           main] org.apache.zookeeper.ZooKeeper           : Client environment:user.home=C:\Users\Administrator
2018-06-21 11:12:51.465  INFO 8340 --- [           main] org.apache.zookeeper.ZooKeeper           : Client environment:user.dir=D:\work_space\springbootdemo\springboot-solr
2018-06-21 11:12:51.470  INFO 8340 --- [           main] org.apache.zookeeper.ZooKeeper           : Initiating client connection, connectString=192.168.10.88:2181,192.168.10.88:2182,192.168.10.88:2183 sessionTimeout=10000 watcher=org.apache.solr.common.cloud.SolrZkClient$3@68ed96ca
2018-06-21 11:12:51.636  INFO 8340 --- [168.10.88:2182)] org.apache.zookeeper.ClientCnxn          : Opening socket connection to server 192.168.10.88/192.168.10.88:2182. Will not attempt to authenticate using SASL (unknown error)
2018-06-21 11:12:51.649  INFO 8340 --- [168.10.88:2182)] org.apache.zookeeper.ClientCnxn          : Socket connection established to 192.168.10.88/192.168.10.88:2182, initiating session
2018-06-21 11:12:51.795  INFO 8340 --- [168.10.88:2182)] org.apache.zookeeper.ClientCnxn          : Session establishment complete on server 192.168.10.88/192.168.10.88:2182, sessionid = 0x2642028d55b0000, negotiated timeout = 10000
2018-06-21 11:12:52.128  INFO 8340 --- [           main] o.a.solr.common.cloud.ZkStateReader      : Updated live nodes from ZooKeeper... (0) -> (4)
2018-06-21 11:12:52.262  INFO 8340 --- [           main] o.a.s.c.s.i.ZkClientClusterStateProvider : Cluster at 192.168.10.88:2181,192.168.10.88:2182,192.168.10.88:2183 ready
1458729469-->海爾(Haier)HM-M209手機 老人機 老人手機 老年手機 直板手機 紅色
1458729470-->海爾(Haier)HM-M209手機 老人機 老人手機 老年手機 直板手機 黑色
1213323763-->唐為 TW509 GSM 移動聯通2G手機 翻蓋手機 雙卡雙待 老人手機 金色
1202453093-->唐為 TW509 移動聯通2G手機 翻蓋手機 雙卡雙待 老人手機 金色
1385872974-->迪士尼(Disney) Q611 兒童手機 黃色
967021-->TCL 老人手機 (i310) 暗夜黑 移動聯通2G手機
1305691-->TCL 老人手機 (i310+) 暗夜黑 移動聯通2G手機
1078460347-->大Q手機 Q1 移動3G手機 香檳金 官方標配
1079894632-->優思 (Uniscope) U6X 電信2G手機 迷你手機 粉
1286299689-->唐為 TW99A 移動聯通2G手機 老人手機 紅色
1295341-->OPPO 1100 白色 聯通4G手機
1231490-->小米4 白色 聯通3G手機
1027857-->TCL 老人手機 (i310) 純淨白 移動聯通2G手機
1305682-->TCL 老人手機 (i310+) 純淨白 移動聯通2G手機
1074112714-->大Q手機 Q1 移動3G手機 高階黑 官方標配
1079894631-->優思 (Uniscope) U6X 電信2G手機 迷你手機 白
1309191989-->大Q手機 Q1 4G版 移動4G手機 黑色
1309191990-->大Q手機 Q1 4G版 移動4G手機 白色
1465889278-->HANMAC 星座系列 聯通3G 輕奢手機 射手座
985058-->派信(PISIN) WO1 NanoSmart 智慧手錶手機(藍色)

4.2配置欄位高亮顯示

/**
	 * 設定結果高亮顯示
	 */
	@Test
	public void hl() throws IOException, SolrServerException {
		/**
		 * 叢集版CloudSolrClient繼承自SolrClient 進行強轉
		 * 單機版不需要直接使用solrClient
		 */
		CloudSolrClient cloudSolrClient =(CloudSolrClient)solrClient;
		//設定預設的操作例項
		cloudSolrClient.setDefaultCollection("collection1");
		//設定查詢的引數
		SolrQuery query = new SolrQuery();
		query.setQuery("item_title:手機");
		//開啟高亮
		query.setHighlight(true);
		//設定高亮欄位
		query.addHighlightField("item_title");
		//字首
		query.setHighlightSimplePre("<font color='red'>");
		//字尾
		query.setHighlightSimplePost("</font>");
		//執行查詢
		QueryResponse response = cloudSolrClient.query(query);
		//列印高亮資訊
		System.out.println(response.getHighlighting());
	}

效果如下:

{1213323763={item_title=[唐為 TW509 GSM 移動聯通2G<font color='red'>手機</font> 翻蓋<font color='red'>手機</font> 雙卡雙待 老人<font color='red'>手機</font> 金色]}, 
1202453093={item_title=[唐為 TW509 移動聯通2G<font color='red'>手機</font> 翻蓋<font color='red'>手機</font> 雙卡雙待 老人<font color='red'>手機</font> 金色]}, 1079894632={item_title=[優思 (Uniscope) U6X 電信2G<font color='red'>手機</font> 迷你<font color='red'>手機</font> 粉]}, 1305691={item_title=[TCL 老人<font color='red'>手機</font> (i310+) 暗夜黑 移動聯通2G<font color='red'>手機</font>]},
 1458729470={item_title=[海爾(Haier)HM-M209<font color='red'>手機</font> 老人機 老人<font color='red'>手機</font> 老年<font color='red'>手機</font> 直板<font color='red'>手機</font> 黑色]}, 967021={item_title=[TCL 老人<font color='red'>手機</font> (i310) 暗夜黑 移動聯通2G<font color='red'>手機</font>]}, 1460827382={item_title=[海爾(Haier)HM-M209<font color='red'>手機</font> 老人機 老人<font color='red'>手機</font> 老年<font color='red'>手機</font> 直板<font color='red'>手機</font> 白色]}, 1078460347={item_title=[大Q<font color='red'>手機</font> Q1 移動3G<font color='red'>手機</font> 香檳金 官方標配]}, 1385872974={item_title=[迪士尼(Disney) Q611 兒童<font color='red'>手機</font> 黃色]}, 1458729469={item_title=[海爾(Haier)HM-M209<font color='red'>手機</font> 老人機 老人<font color='red'>手機</font> 老年<font color='red'>手機</font> 直板<font color='red'>手機</font> 紅色]}}





相關文章