本文介绍通过开源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模式,请联系Lindorm技术支持(钉钉号:s0s3eg3)获取专有网络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是线程安全的,应用多线程可以共享一个对象。
zkHost为Lindorm搜索引擎的Solr兼容地址,如何获取,请参见查看搜索引擎连接地址。
步骤三:访问搜索引擎示例说明
通过以下代码写入数据。
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);
通过以下代码查询数据。
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();
说明关于常见数据查询的完整示例,请参见代码示例。