本文介绍如何通过开源Solr Java AP访问Lindorm搜索引擎,请参考以下说明。

获取SDK

  • Maven 依赖获取

    如果您使用 Maven 做项目构建工具,那么请在 pom.xml 文件的标签中添加solr-solrj 依赖,如下:

    <dependency>
       <groupId>org.apache.solr</groupId>
       <artifactId>solr-solrj</artifactId>
       <version>7.3.1</version>
    </dependency>
  • 下载SDK

    如果您不使用 Maven,或者不能访问 Maven 仓库,可直接下载SDK

使用示例

  1. 初始化客户端

    //公网访问时,本地调试采用HttpSolrClient模式

    //前提:通过控制台"访问控制"添加本机IP到白名单

        String httpUrl = "http://***:8983/solr/";
        HttpSolrClient solrClient = new HttpSolrClient.Builder(httpUrl).build();

    //内网访问建议采用CloudSolrClient模式

    //CloudSolrClient是线程安全的,应用多线程可以共享一个对象

        String zkHost = "zk1:2181,zk2:2181,zk3:2181/solr"
        CloudSolrClient solrClient = new CloudSolrClient.Builder(Collections.singletonList(zkHost), 
                                        Optional.empty()).build();
  2. 写入数据
        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);
  3. 查询数据
        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();
  4. 常用语法介绍

    针对常见的查询场景,可以参考详细的代码示例,点击链接