搜索引擎支持多语言访问,并且完全兼容开源Solr API,本篇主要介绍如何使用Solr Java API开发一个简单的读写应用访问搜索引擎。
操作步骤
- 获取集群连接地址
在Lindorm实例控制台,在左侧导航栏进入
数据库连接页面后,查看
搜索引擎页面中的私网地址。
- 配置客户端SDK依赖
Lindorm搜索引擎完全兼容开源Solr协议,可直接依赖开源客户端版本,Maven配置如下:
<dependency> <groupId>org.apache.solr</groupId> <artifactId>solr-solrj</artifactId> <version>7.7.3</version> </dependency>
- 创建索引表
可通过集群管理界面创建索引表,具体可参考:如何创建索引表。
代码示例
下面给出一个简单的代码样例:创建连接,写入3行数据,再进行查询。
- 创建连接
/** //公网访问时,本地调试采用HttpSolrClient模式 //前提:通过控制台"访问控制"添加本机IP到白名单 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<SolrInputDocument> docs = new ArrayList<>(); SolrInputDocument doc = new SolrInputDocument(); doc.addField("id", "1"); doc.addField("name_s", "zhangsan"); doc.addField("age_i", 18); docs.add(doc); doc = new SolrInputDocument(); doc.addField("id", "2"); doc.addField("name_s", "lisi"); doc.addField("age_i", 20); docs.add(doc); doc = new SolrInputDocument(); doc.addField("id", "3"); doc.addField("name_s", "wangwu"); doc.addField("age_i", 35); docs.add(doc); // 写入数据 solrClient.add(docs);
- 查询
// 查询数据 SolrQuery solrQuery = new SolrQuery("name_s:zhangsan"); 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();
更多样例代码,请参见Java Demo。