本文介绍通过开源Solr API(Java)访问Lindorm搜索引擎的步骤和示例说明。
前提条件
- 安装Java环境,使用JDK1.6或更高版本。
- 已将本机IP添加至白名单,具体操作,请参见设置白名单。
步骤一:下载solr-solrj
添加Maven依赖获取。如果您使用Maven仓库做项目,请在pom.xml文件中添加solr-solrj依赖,具体代码如下。
<dependency>
<groupId>org.apache.solr</groupId>
<artifactId>solr-solrj</artifactId>
<version>8.9.0</version>
</dependency>
步骤二:创建实例并初始化
- 如果您使用公网访问实例建议采用HttpSolrClient模式,代码如下所示。
String httpUrl = "http://***:8983/solr/"; HttpSolrClient solrClient = new HttpSolrClient.Builder(httpUrl).build();
- 如果您使用内网访问实例建议采用CloudSolrClient模式,代码如下所示。
String zkHost = "zk1:2181,zk2:2181,zk3:2181/solr" CloudSolrClient solrClient = new CloudSolrClient.Builder(Collections.singletonList(zkHost), Optional.empty()).build();
说明 CloudSolrClient是线程安全的,应用多线程可以共享一个对象。
步骤三:访问搜索引擎示例说明
- 通过以下代码写入数据。
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(docs);
- 通过以下代码查询数据。
SolrQuery solrQuery = new SolrQuery("name_s:bob"); QueryResponse response = solrClient.query("your_index", solrQuery); SolrDocumentList documentList = response.getResults(); for(SolrDocument doc : documentList){ String id = (String)doc.getFieldValue("id"); //do something } solrClient.close();
说明 关于常见的查询数据代码示例,请参见代码示例。