本文介绍通过开源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是线程安全的,应用多线程可以共享一个对象。

步骤三:访问搜索引擎示例说明

  1. 通过以下代码写入数据。
        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);
  2. 通过以下代码查询数据。
        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();
    说明 关于常见的查询数据代码示例,请参见代码示例