`

SolrJ查询语法总结

 
阅读更多

//AND 并且
    SolrQuery params = new SolrQuery("name:apple AND manu:inc");
    
    //OR 或者
    params.setQuery("name:apple OR manu:apache");
    //空格 等同于 OR
    params.setQuery("name:server manu:dell");
    
    //params.setQuery("name:solr - manu:inc");
    //params.setQuery("name:server + manu:dell");
    
    //查询name包含solr apple
    params.setQuery("name:solr,apple");
    //manu不包含inc
    params.setQuery("name:solr,apple NOT manu:inc");
    
    //50 <= price <= 200
    params.setQuery("price:[50 TO 200]");
    params.setQuery("popularity:[5 TO 6]");
    //params.setQuery("price:[50 TO 200] - popularity:[5 TO 6]");
    //params.setQuery("price:[50 TO 200] + popularity:[5 TO 6]");
    
    //50 <= price <= 200 AND 5 <= popularity <= 6
    params.setQuery("price:[50 TO 200] AND popularity:[5 TO 6]");
    params.setQuery("price:[50 TO 200] OR popularity:[5 TO 6]");
    
    //过滤器查询,可以提高性能 filter 类似多个条件组合,如and
    //params.addFilterQuery("id:VA902B");
    //params.addFilterQuery("price:[50 TO 200]");
    //params.addFilterQuery("popularity:[* TO 5]");
    //params.addFilterQuery("weight:*");
    //0 < popularity < 6  没有等于
    //params.addFilterQuery("popularity:{0 TO 6}");
    
    //排序
    params.addSortField("id", ORDER.asc);
    //分页:start开始页,rows每页显示记录条数
    //params.add("start", "0");
    //params.add("rows", "200");
    //params.setStart(0);
    //params.setRows(200);
    
    //设置高亮
    params.setHighlight(true); // 开启高亮组件
    params.addHighlightField("name");// 高亮字段
    params.setHighlightSimplePre("<font color='red'>");//标记,高亮关键字前缀
    params.setHighlightSimplePost("</font>");//后缀
    params.setHighlightSnippets(1);//结果分片数,默认为1
    params.setHighlightFragsize(1000);//每个分片的最大长度,默认为100
 
    //分片信息
    params.setFacet(true)
        .setFacetMinCount(1)
        .setFacetLimit(5)//段
        .addFacetField("name")//分片字段
        .addFacetField("inStock");
    
    //params.setQueryType("");
    
    try {
        QueryResponse response = server.query(params);
        
        /*List<Index> indexs = response.getBeans(Index.class);
        for (int i = 0; i < indexs.size(); i++) {
            fail(indexs.get(i));
        }*/
        
        //输出查询结果集
        SolrDocumentList list = response.getResults();
        fail("query result nums: " + list.getNumFound());
        for (int i = 0; i < list.size(); i++) {
            fail(list.get(i));
        }
        
        //输出分片信息
        List<FacetField> facets = response.getFacetFields();
        for (FacetField facet : facets) {
            fail(facet);
            List<Count> facetCounts = facet.getValues();
            for (FacetField.Count count : facetCounts) {
                System.out.println(count.getName() + ": " + count.getCount());
            }
        }
    } catch (SolrServerException e) {
        e.printStackTrace();
    }

分享到:
评论

相关推荐

    solrj的facet查询总结

    SolrJ 的 Facet 查询总结 Facet 查询是 Solr 的高级搜索功能之一,可以给用户提供更友好的搜索体验。在搜索关键字的同时,能够按照 Facet 的字段进行分组并统计。下面是对 SolrJ 的 Facet 查询的总结: 一、Facet ...

    快速上手数据挖掘之solr搜索引擎高级教程(Solr集群、KI分词)第08讲 solrj语法详解 共7页.pptx

    第01讲 solr5简介第02讲 solr5之Schema第03讲 solr5之Solrconfig第04讲 solr5单机安装与配置第05讲 solrj基础(一)第06讲 solrj基础(二)第07讲 solrj之SolrBean第08讲 solrj语法详解第09讲 Solrj之Multicore查询第10...

    solr-solrj 5.0.0 demo

    Solr-Solrj支持多种查询语法,包括标准查询、高亮显示、 faceting(分面搜索)等高级功能。 ```java SolrQuery query = new SolrQuery(); query.setQuery("text:例子"); QueryResponse response = server.query...

    solr-solrj-6.1.0

    Solr-Solrj是Apache Lucene项目下的一个子项目,专门为Apache Solr搜索引擎提供Java客户端库。Solr是一款强大的全文检索服务器,而Solrj则是与之交互的Java API,使得开发人员能够轻松地在Java应用程序中集成Solr的...

    solrj工具类封装

    solrj工具类封装,包括条件批量查询,批量增删改,分段修改。

    solr-solrj-4.10.3.jar和solr-solrj-5.0.0.jar

    在这个版本中,SolrJ引入了许多新特性,包括对SolrCloud的支持,这是一个分布式索引和查询解决方案。此外,它还改进了并发和性能,增加了对新特性的支持,如表达式语言和复杂查询结构。5.0.0版本也可能会有API的调整...

    java solr solrj 带账号密码增量查询添加索引

    主要讲解了 solr客户端如何调用带账号密码的solr服务器调用,实现添加索引和查询索引,以及分组查询

    solrj的使用

    除了基本的索引和查询,SolrJ还支持更复杂的操作,如删除文档、更新文档字段、批量操作以及处理查询结果分页等。例如,删除文档可以使用`deleteById()`或`deleteByQuery()`方法: ```java solrServer.deleteById("1...

    solrj使用教程

    SolrJ还支持更复杂的查询功能,如分组、排序、高亮、函数查询、更多样化的查询语法等。同时,对于分布式SolrCloud环境,`CloudSolrClient`可以让你在多个Solr集合之间切换,进行分布式操作。 **9. 关闭连接** 使用...

    SolrJ6.3.0

    SolrJ 提供了一组 Java API,可以用来创建、更新和查询 Solr 索引,以及执行其他管理任务。 在提供的压缩包文件中,包含了多个与 SolrJ 相关的 Jar 包,这些文件是 SolrJ 及其依赖组件的核心组成部分: 1. **solr-...

    solr配置和solrJ的使用

    ### Solr配置与SolrJ使用详解 #### 一、Solr基本安装与配置 ...通过上述步骤,您可以完成Solr的基本安装与配置,以及实现基于SolrJ的文档索引与查询功能。这些操作为构建高效的全文搜索系统奠定了基础。

    SolrJ需要的jar包

    SolrJ是Apache Solr官方提供的Java客户端库,它使得Java开发者能够轻松地与Solr搜索引擎进行通信,执行查询、索引文档等操作。SolrJ的使用是大数据环境中实现高效全文检索和数据分析的关键组件。在Java项目中,正确...

    solrJ 需要的jar文件 (全)

    开发者可以使用SolrJ创建索引、查询Solr服务器、处理搜索结果以及执行其他Solr相关的任务。 - 使用SolrJ,开发者无需关心HTTP通信的细节,它封装了所有网络I/O,使得代码更简洁,更易于维护。 2. **JUnit-4.7.0**...

    快速上手数据挖掘之solr搜索引擎高级教程(Solr集群、KI分词)第09讲 Solrj之Multicore查询共7页.pptx

    第01讲 solr5简介第02讲 solr5之Schema第03讲 solr5之Solrconfig第04讲 solr5单机安装与配置第05讲 solrj基础(一)第06讲 solrj基础(二)第07讲 solrj之SolrBean第08讲 solrj语法详解第09讲 Solrj之Multicore查询第10...

    solr-solrj-4.9.0.jar

    solr-solrj-4.9.0.jar

    solr-solrj-5.5.0.jar

    solrJ是Java连接solr进行查询检索和索引更新维护的jar包。

    solr-solrj-4.10.3.jar

    solr-solrj-4.10.3.jar。

    Solrj 中文教程

    Solr提供了强大的查询语言,支持复杂的查询语法,包括布尔逻辑、近似匹配、短语查询等,以满足不同类型的搜索需求。 **1.2.4 核心** Solr支持多核心(MultiCore),每个核心可以视为独立的索引,这样可以实现更细...

    solr在SSM框架中使用(支持中文分词查询)

    这通常通过在pom.xml文件中添加SolrJ库来完成,SolrJ是Solr的Java客户端库,提供与Solr服务器交互的API。同时,我们还需要一个支持中文分词的分词器,如IK Analyzer或HanLP,它们能够将中文文本拆分成有意义的词汇...

    solr-solrj-4.4.0.jar

    solr-solrj-4.4.0.jar

Global site tag (gtag.js) - Google Analytics