通過開源Solr API(Java)訪問搜索引擎
更新時(shí)間:
本文介紹通過開源Solr API(Java)訪問Lindorm搜索引擎的步驟和示例說明。
前提條件
安裝Java環(huán)境,使用JDK1.6或更高版本。
已將本機(jī)IP添加至白名單,具體操作,請(qǐng)參見設(shè)置白名單。
注意事項(xiàng)
不支持通過公網(wǎng)訪問。
步驟一:下載solr-solrj
添加Maven依賴獲取。如果您使用Maven倉(cāng)庫(kù)做項(xiàng)目,請(qǐng)?jiān)?span data-tag="filepath" id="filepath-swm-1xu-58s" class="filepath">pom.xml文件中添加solr-solrj依賴,具體代碼如下。
<dependency>
<groupId>org.apache.solr</groupId>
<artifactId>solr-solrj</artifactId>
<version>8.9.0</version>
</dependency>
步驟二:創(chuàng)建實(shí)例并初始化
如果您使用HttpSolrClient模式,請(qǐng)聯(lián)系Lindorm技術(shù)支持(釘釘號(hào):s0s3eg3)獲取專有網(wǎng)絡(luò)HTTP地址(httpUrl)。代碼如下所示。
String httpUrl = "http://***:****/solr/"; HttpSolrClient solrClient = new HttpSolrClient.Builder(httpUrl).build();
如果您采用CloudSolrClient模式,代碼如下所示。
String zkHost = "ld-bp16cf8611a4r****-proxy-zk.lindorm.rds.aliyuncs.com:2***/solr"; CloudSolrClient solrClient = new CloudSolrClient.Builder(Collections.singletonList(zkHost), Optional.empty()).build();
說明CloudSolrClient是線程安全的,應(yīng)用多線程可以共享一個(gè)對(duì)象。
zkHost為L(zhǎng)indorm搜索引擎的Solr兼容地址,如何獲取,請(qǐng)參見查看搜索引擎連接地址。
步驟三:訪問搜索引擎示例說明
通過以下代碼寫入數(shù)據(jù)。
List docs = new ArrayList<>(); SolrInputDocument doc = new SolrInputDocument(); doc.addField("id", 1); doc.addField("name_s", "bob"); doc.addField("age_i", 18); docs.add(doc); solrClient.add("your_index",docs);
通過以下代碼查詢數(shù)據(jù)。
SolrQuery solrQuery = new SolrQuery("name_s:bob"); QueryResponse response = solrClient.query("your_index", solrQuery); SolrDocumentList documentList = response.getResults(); for(SolrDocument solrdoc : documentList){ String id = (String)solrdoc.getFieldValue("id"); //do something } solrClient.close();
說明關(guān)于常見數(shù)據(jù)查詢的完整示例,請(qǐng)參見代碼示例。
文檔內(nèi)容是否對(duì)您有幫助?