`

Solr查询语法

    博客分类:
  • Solr
阅读更多

还以为网上的solr最基础的东西应该很多,结果发现je这边都是一些部署的资料。到没用人给最基本的查询语法。在做查询时十分吃力,自己整理了几个例子来分享下,希望别人不要再走弯路。

 

首先说下,查询都是基于solrj。如果不清楚solrj。可以当做是对solr查询语句的一个api封装。

solr的查询其实都是向select这个servlet穿字符型的参数,例如:

Solr代码  收藏代码
  1. http://192.168.1.107:8983/solr/collection1/select?q=*%3A*&wt=xml&indent=true  

 查询的字段格式一般是:   字段名: 字段值

说明号会被urlcoding,变成“%3A。”

我没有看过solrj的源码。但是应该是将对select这个servlet的请求通过httpclient的方式的一种实现。

 

进入正题:

首先需要实例化 SolrQuery 对象,用来做要查询的参数集合。

Java代码  收藏代码
  1. SolrQuery q = new SolrQuery();  
  2. q.setQuery("TITLE:中国人");  

 

1、最基本的字段查询:

Java代码  收藏代码
  1. TITLE:中国人

 

   即查询 字段是TITLE 值包含“中国人”的所有结果集。

  solr在查询时,会对传入的值分词, 中国人有可能会被分成“中国”,“国人”,“中国人”。

  包含着三个短语的语句都会被搜到。强制要求solr不分词,可以给短语加上双引号

Java代码  收藏代码
  1. TITLE:"中国人"  

 这样就只返回值包含“中国人”这个词语的。中国和 国人就不会返回。

 

2、多字段或关系 OR

Java代码  收藏代码
  1. TITLE:("中国人" AND "美国人" AND "英国人")  
  2. TITLE:"中国人"  OR CREATED_AT:[" + date1 + " TO " + date2 + "]  

 

3.多字段不包含的关系 NOT

这个语法就是我吃苦的地方,之前已经当多值or那样去查,结果不是,要写成

Java代码  收藏代码
  1. TITLE:(* NOT "上网费用高" NOT "宽带收费不合理" )  

 

4.查询一个范围 BETWEEN

Java代码  收藏代码
  1. NUM:[-90 TO 360 ]  OR CREATED_AT:[" + date1 + " TO " + date2 + "]  

 适用于数字和日期类型 .

日期转换上, date 要用 

Java代码  收藏代码
  1. String date1 = FastDateFormat.getInstance(  
  2.                     "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'").format(  
  3.                     c.getStartTime().getTime())  

 来转换,而不是惯用的 yyyy-MM-dd HH:mm:ss

 

5.模糊查询

StringBuffer sb = new StringBuffer();
sb.append(" qymc:").append(searchKey); // 使用IK分词器查询
sb.append(" OR bh:").append("*"+searchKey+"*"); // 模糊查询
query = new SolrQuery(sb.toString());

在搜索大字段的时候可以使用,比如:标题、文章内容,使用时需要配置schema.xml文件<field type="分词器名称"/>

分享到:
评论

相关推荐

    solr查询语法

    ### Solr查询语法详解 #### 一、Core Query Param 查询参数 在Solr查询中,有许多重要的查询参数,这些参数可以帮助我们更精确地控制搜索行为。 1. **q**: 必填参数,代表查询字符串。它是任何Solr查询的基础,...

    solr查询语法.pdf

    Solr是一种基于Apache Lucene的开源搜索引擎,提供了丰富的查询语法来满足各种搜索需求。在了解Solr查询语法前,我们首先需要了解几个核心概念。 首先,Solr的查询解析是通过queryParser来配置的,通常使用默认配置...

    js-solr-highlighter:一个JavaScript库,用于基于lucenesolr查询语法中的查询突出显示文本

    js-solr-highlighter 一个JavaScript库,用于基于lucene / solr查询语法中的查询突出显示HTML文本在浏览器或Node.js环境中运行基于和构建一般的突出显示过程为: 使用Lucene语法从查询中得出要突出显示的文本突出...

    最新版windows solr-8.6.0.zip

    - **查询API**:Solr支持多种查询语法,如Lucene查询语法、Solr查询语法等。 2. **Windows上安装Solr 8.6.0** - **解压**:首先,需要将"solr-8.6.0.zip"解压到本地文件夹。 - **启动服务器**:进入解压后的目录...

    Solr 查询,索引

    1. **查询语法**:Solr支持丰富的查询语法,包括标准查询解析器(Standard Query Parser)和Lucene查询语法。例如,`q=field:query`用于指定字段查询,`q=*:*`表示匹配所有文档。 2. **查询解析**:查询字符串会被...

    基于solr的网站索引架构(一)

    用户输入的查询会被转换为Solr查询语法,然后发送到Solr服务器。Solr会根据索引快速找到匹配的文档,并返回结果。Solr支持丰富的查询语法,如布尔运算符、短语搜索、范围查询等。 7. **分布式搜索**: 当数据量...

    基于Solr的多表join查询加速方法

    - **查询设计**:通过调整查询语句的结构,如使用“exists”查询或“join”查询,以适应Solr的查询机制,提升性能。 - **硬件和架构优化**:例如,增加Solr服务器的内存,使用SSD硬盘提升I/O速度,或者采用更高效的...

    Apache Solr and Tomcat6 Search engine

    3. **搜索API**: Solr支持多种查询语言,如简单的Lucene查询语法和更复杂的Solr查询语法。它还提供了高级查询选项,如模糊匹配、短语查询、排序和分页。 4. **分布式搜索**: Solr可以部署在多个服务器上,形成一个...

    simple-search-query-parser:简单的 PHP 脚本解析搜索查询并转换为 SOLR 语法

    SOLR 查询语法是 SOLR 搜索引擎用于构造查询的关键组成部分,它允许用户执行高级查询,包括字段限制、模糊匹配、短语查询、布尔逻辑等。例如: - **字段限制**:`field:value`,指定查询结果必须包含特定字段的指定...

    up_875506_SolrPhpClient_26n0y.rar

    3. **查询操作**:使用Solr提供的查询语言(如Lucene查询语法或Solr查询语法)构造查询条件,获取结果集。 4. **更新与删除**:根据需要更新单个或批量文档,或者删除指定的文档。 5. **处理结果**:获取查询结果后...

    nutch对指定字段进行查询及双引号查询

    Nutch支持Solr查询语法,可以使用`field:`前缀来指定查询的字段。例如,如果我们要查询标题中包含"技术"的页面,查询字符串应为`title:技术`。这将确保返回的结果集中,每个结果的标题都包含"技术"这个词。 2. **双...

    up_701910_SolrPhpClient_g5vydc.rar

    4. **Solr查询语法**:学习Solr查询语言(SOLRQParser),包括基本查询、高级查询、过滤器查询以及使用facets和高亮等特性。 5. **响应处理**:解析Solr返回的XML或JSON格式的查询结果,并展示给用户。 6. **错误...

    solr-6.2.0源码

    4. 高级搜索功能:Solr提供丰富的查询语法,如布尔逻辑、短语匹配、模糊匹配、字段限制等,以及自定义查询解析器和过滤器。 5. 自定义排序和评分:用户可以自定义文档排序规则和评分算法,以满足特定的业务需求。 6....

    Solr项目源码及solr资源包

    - **Query**:Solr支持丰富的查询语法,包括Lucene查询语法、Solr查询API等。 8. **SolrCloud模式**:如果项目涉及到SolrCloud,那么还需要了解分布式搜索和存储的概念,如Sharding(分片)、Replication(复制)...

    SolrNet-master.zip

    3. **查询和操作**:SolrNet支持各种Solr查询语法,包括标准查询、高亮、 faceting(分面)和更多高级特性。同时,它还支持添加、更新和删除文档。 4. **异步操作**:考虑到性能和并发性,SolrNet提供了异步API,使...

    Apache Solr(solr-8.11.1.tgz)

    - **新功能**:可能引入了新的搜索特性,比如新的查询语法、更强大的分析器或者对最新技术标准的支持。 - **稳定性改进**:修复了已知的bug,增强了系统的稳定性和可靠性。 - **安全增强**:可能会有安全更新,以...

    match-query-parser,在solr中使用不同的查询时间分析器搜索单个字段.zip

    默认情况下,Solr使用标准查询分析器(Standard Query Parser),但有时我们可能需要针对特定字段定制查询行为,例如,处理特殊查询语法或执行精确匹配。这就是`match-query-parser`发挥作用的地方。 `match-query-...

    solr-4.10.3

    4.10.3版本支持多种类型的字段,如文本、数字、日期等,并提供了丰富的查询语法,包括标准查询解析器、短语查询、近似查询等。 3. **XML/JSON数据输入**:Solr-4.10.3支持通过HTTP接口接收XML或JSON格式的数据,...

Global site tag (gtag.js) - Google Analytics