1.基本查询语法
- q:全文查询。schema.xml里面定义了如下两块。eg q=ibm即表示org_name或者org_weisite里面出现ibm的document都可以被匹配到。KeyWords查询就是这个参数。
<!-- catchall field, containing all other searchable text fields (implemented via copyField further on in this schema --> <field name="text" type="text" indexed="true" stored="false" multiValued="true"/>
<!-- copyField commands copy one field to another at the time a document is added to the index. It's used either to index the same field differently, or to add multiple fields to the same field for easier/faster searching. --> <copyField source="org_name" dest="text" /> <copyField source="org_website" dest="text" />
- fq:过滤查询参数。它和q一起使用。格式1:fq=field:X,eg q=ibm&fq=org_name:ibm,表示org_name或者org_website里面出现ibm并且org_name里面出现ibm的document。格式2:fq=field:[X TO X],区间查询,eg fq=org_id:[100 TO 200],表示org_id为100(包含)到200(包含)的所有document。给大家贴一段代码,你就知道什么类型的field才能进行区间查询。
<!-- numeric field types that store and index the text value verbatim (and hence don't support range queries, since the lexicographic ordering isn't equal to the numeric ordering) --> <fieldType name="integer" class="solr.IntField" omitNorms="true"/> <fieldType name="long" class="solr.LongField" omitNorms="true"/> <fieldType name="float" class="solr.FloatField" omitNorms="true"/> <fieldType name="double" class="solr.DoubleField" omitNorms="true"/> <!-- Numeric field types that manipulate the value into a string value that isn't human-readable in its internal form, but with a lexicographic ordering the same as the numeric ordering, so that range queries work correctly. --> <fieldType name="sint" class="solr.SortableIntField" sortMissingLast="true" omitNorms="true"/> <fieldType name="slong" class="solr.SortableLongField" sortMissingLast="true" omitNorms="true"/> <fieldType name="sfloat" class="solr.SortableFloatField" sortMissingLast="true" omitNorms="true"/> <fieldType name="sdouble" class="solr.SortableDoubleField" sortMissingLast="true" omitNorms="true"/>
- start:指定第一条记录在所有记录的位置。
- rows:一次性取出多少条数据。start和rows一起使用用于分页。eg start=20&rows=10表示取20到30之间的数据,如果每页显示10条数据,那么这个结果就是第二页到第三页的数据了。
- sort:用于排序。eg sort=org_name desc表示按org_name降序排序。注意,并不是所有的field都能排序的。如果schema.xml里面org_name被定义成text型,请问还能sort=org_name desc吗?不能,因为text类型定义的filter已经将org_name进行了切分,一个被切分后的field也就丧失了排序资格。
- 其它的几种用的不多。就不说了。给出一个完整的url:http://localhost:8080/solr/core1/select?q=ibm&fq=org_name:ibm&fq=org_weisite:www.ibm.com&start=20&rows=30&sort=org_name desc。
2.solr分布式
- solr分布式可以分为两种:同一server不同索引库,不同server。在此,只讨论前一种。
- http://localhost:8080/solr/core1/select?q=ibm&fq=org_name:ibm&fq=org_weisite:www.ibm.com&start=20&rows=30&sort=org_name desc。是查询core1索引库里面的数据,如果此时,有另外一索引库core2,其配置文件schema.xml与core1一样。通过http://localhost:8080/solr/core2/select?q=ibm&fq=org_name:ibm&fq=org_weisite:www.ibm.com&start=20&rows=30&sort=org_name desc可以查询到core2索引库的数据。
- 如果要同时查询core1,core2,其语法是怎么样的呢?http://localhost:8080/solr/core1/select?q=ibm&fq=org_name:ibm&fq=org_weisite:www.ibm.com&start=20&rows=30&sort=org_name desc&shards=localhost:8080/solr/core1,localhost:8080/solr/core2。
- 这个时候还是取10条数据。怎么取?实际上有四个步骤:1)从core1里面取匹配到的30条(rows)数据,已经排好序。2)从core2里面取匹配到的30条数据,已经排好序。3)合并这60条数据,重新排序。4)取20到30之间的10条。
- 给出一个url以及后台信息,有兴趣的可以研究下。http://192.168.1.110:3033/solr/company_activity_log/select?q=ibm&sort=pal_date+desc&fq=(pal_type:[50+TO+60]+AND+allmemids:\-1)+OR+pal_type:[1+TO+40]+OR+pal_type:[510+TO+699]+OR+pal_type:[2010+TO+2030]&start=20&rows=50&shards=192.168.1.110:3033/solr/company_activity_log,192.168.1.110:3033/solr/people_activity_log,192.168.1.110:3033/solr/buznews
INFO: [people_activity_log] webapp=/solr path=/select params={fl=recordid&sort=pal_date+desc&start=0&q=ibm&isShard=true&wt=javabin&fq=(pal_type:[50+TO+60]+AND+allmemids:\-1)+OR+pal_type:[1+TO+40]+OR+pal_type:[510+TO+699]+OR+pal_type:[2010+TO+2030]&fsv=true&rows=70&version=1} hits=4 status=0 QTime=1 Mar 24, 2011 3:37:56 PM org.apache.solr.core.SolrCore execute INFO: [buznews] webapp=/solr path=/select params={fl=recordid&sort=pal_date+desc&start=0&q=ibm&isShard=true&wt=javabin&fq=(pal_type:[50+TO+60]+AND+allmemids:\-1)+OR+pal_type:[1+TO+40]+OR+pal_type:[510+TO+699]+OR+pal_type:[2010+TO+2030]&fsv=true&rows=70&version=1} hits=1955 status=0 QTime=2 Mar 24, 2011 3:37:56 PM org.apache.solr.core.SolrCore execute INFO: [company_activity_log] webapp=/solr path=/select params={fl=recordid&sort=pal_date+desc&start=0&q=ibm&isShard=true&wt=javabin&fq=(pal_type:[50+TO+60]+AND+allmemids:\-1)+OR+pal_type:[1+TO+40]+OR+pal_type:[510+TO+699]+OR+pal_type:[2010+TO+2030]&fsv=true&rows=70&version=1} hits=1 status=0 QTime=0 Mar 24, 2011 3:37:56 PM org.apache.solr.core.SolrCore execute INFO: [buznews] webapp=/solr path=/select params={start=20&q=ibm&ids=news.1845018,news.1857975,news.1849705,news.1845017,news.1847219,news.1856408,news.1856584,news.1851627,news.1856105,news.1858456,news.1850005,news.1844890,news.1854864,news.1847360,news.1844998,news.1854711,news.1847708,news.1846403,news.1856387,news.1855993,news.1856216,news.1856595,news.1849931,news.1856117,news.1843249,news.1858277,news.1844969,news.1851645,news.1847030,news.1858666,news.1856324,news.1849897,news.1856170,news.1849323,news.1856563,news.1857434,news.1843233,news.1843235,news.1858766,news.1858015,news.1858014,news.1849353,news.1856365,news.1849354,news.1858016,news.1849629,news.1855972,news.1847282,news.1847346,news.1856573&isShard=true&wt=javabin&fq=(pal_type:[50+TO+60]+AND+allmemids:\-1)+OR+pal_type:[1+TO+40]+OR+pal_type:[510+TO+699]+OR+pal_type:[2010+TO+2030]&rows=50&version=1} status=0 QTime=2 Mar 24, 2011 3:37:56 PM org.apache.solr.core.SolrCore execute INFO: [company_activity_log] webapp=/solr path=/select params={shards=192.168.1.110:3033/solr/company_activity_log,192.168.1.110:3033/solr/people_activity_log,192.168.1.110:3033/solr/buznews&sort=pal_date+desc&start=20&q=ibm&fq=(pal_type:[50+TO+60]+AND+allmemids:\-1)+OR+pal_type:[1+TO+40]+OR+pal_type:[510+TO+699]+OR+pal_type:[2010+TO+2030]&rows=50} status=0 QTime=30
3.solr为我们提供了许多复杂的查询语法。更详细的资料,请参考solr wikihttp://wiki.apache.org/solr/FrontPage#solr_development 。
相关推荐
Solr不仅支持高度复杂的查询语法,还具备高度可扩展性和灵活性,使得其在企业级应用中非常受欢迎。 **应用场景**: - **大型门户和论坛**:提供高效、灵活的站内搜索功能。 - **电子商务平台**:支持商品的快速搜索...
1. **查询语言**:Solr 支持复杂的查询语法,可以实现高级搜索需求,如相关度排序。 2. **索引优化**:Solr 提供了高效的数据索引机制,能快速建立和更新索引。 3. **多种数据格式支持**:Solr 支持通过 XML、JSON ...
- **3.6.1 搜索语法**:支持标准的查询语法,如布尔运算符、通配符等。 - **3.6.2 排序**:支持按相关性、日期等多种方式进行排序。 - **3.6.3 字段增加权重**:可以为某些字段设置更高的权重,以提高搜索的相关性。...
这个压缩包“solr-8.6.3.zip”包含了 Solr 的第8.6.3版本,这是一个强大的、高度可定制的搜索平台,广泛用于企业级的数据检索、分析和展示。 在 Solr 8.6.3 版本中,我们可以期待一系列增强和改进,包括但不限于: ...
- **5.1 线下压力测试报告**:总结Solr在模拟高负载环境下的表现。 - **5.2 线上环境运行报告**:记录Solr在真实生产环境中的运行情况。 #### 六、solr性能调优 - **6.1 Schema Design Considerations** - **...
- **查询优化**:利用Solr的查询语法和功能,如通配符搜索、短语匹配等。 - **缓存策略**:调整查询和过滤器缓存设置,提高响应速度。 - **复制集**:为高可用性和容错性,可以设置复制集以备份数据。 6. **维护...
8. **查询和结果处理(Query and Result Handling)**:Solr 提供了丰富的查询语法(如 Lucene 查询语法和 DisMax 请求处理器),并支持对搜索结果进行排序、高亮显示、分页等操作。 9. **Faceting(分类浏览)**:...
7. **查询和搜索**:Solr支持丰富的查询语法和结果排序选项。通过发送HTTP请求到Solr服务器,可以进行复杂查询,并获取格式化的响应结果。 8. **监控和日志**:Solr服务器会生成详细的日志文件,帮助诊断和优化性能...
在《使用 Apache Solr 实现更加灵巧的搜索,第 1 部分 基本特性和 Solr 模式》文档中,你可能会学习到更多关于 Solr 的基础特性,如查询优化、分词器选择、查询分析过程以及如何利用 Solr 的模式设计来提升搜索体验...
第01讲 solr5简介第02讲 solr5之Schema第03讲 solr5之Solrconfig第04讲 solr5单机安装与配置第05讲 solrj基础(一)第06讲 solrj基础(二)第07讲 solrj之SolrBean第08讲 solrj语法详解第09讲 Solrj之Multicore查询第10...
查询模块提供丰富的查询语法和过滤选项;配置模块允许用户通过XML文件定制Solr的行为;分布式处理则使得Solr能够处理大规模的数据,支持负载均衡和故障转移。 2. **文档**:这个压缩包中的文档部分提供了详细的使用...
第01讲 solr5简介第02讲 solr5之Schema第03讲 solr5之Solrconfig第04讲 solr5单机安装与配置第05讲 solrj基础(一)第06讲 solrj基础(二)第07讲 solrj之SolrBean第08讲 solrj语法详解第09讲 Solrj之Multicore查询第10...
查询部分接收用户请求,通过倒排索引快速定位到相关文档;处理部分则涉及结果排序、高亮显示等增强搜索体验的功能。 2. **安装与配置Solr** 安装Solr通常涉及下载最新版本的Solr,解压并配置服务器环境。在`webapp...
6. **搜索功能**:Solr提供丰富的查询语法,包括布尔操作、范围查询、短语匹配等。你可以通过Solr的API发送请求,获取查询结果,这些结果通常包含命中文档的数量和具体内容。 7. **分布式搜索**:Solr 8.5.1支持...
5. **查询(Query)**:Solr支持丰富的查询语法,包括标准查询解析器、Lucene查询语法、布尔运算符、通配符查询、近似查询等,提供灵活的查询能力。 6. ** faceting(分面搜索)**:Solr提供分面搜索功能,允许用户...
- **搜索语法**: Solr支持多种搜索语法,如标准查询语法、模糊查询等。 - **排序**: 可以按照特定字段进行排序,支持升序和降序。 - **字段加权**: 可以为某些字段设置更高的权重,从而影响搜索结果的相关性。 ####...
Solr的核心功能包括文档索引、全文搜索、命中高亮、 faceted search(分面搜索)、实时添加文档以及复杂查询语法等。它支持多种数据源,如CSV、XML、JSON等,并且可以通过HTTP API进行远程操作。 当解压"solr-8.0.0...
第01讲 solr5简介第02讲 solr5之Schema第03讲 solr5之Solrconfig第04讲 solr5单机安装与配置第05讲 solrj基础(一)第06讲 solrj基础(二)第07讲 solrj之SolrBean第08讲 solrj语法详解第09讲 Solrj之Multicore查询第10...
第01讲 solr5简介第02讲 solr5之Schema第03讲 solr5之Solrconfig第04讲 solr5单机安装与配置第05讲 solrj基础(一)第06讲 solrj基础(二)第07讲 solrj之SolrBean第08讲 solrj语法详解第09讲 Solrj之Multicore查询第10...
第01讲 solr5简介第02讲 solr5之Schema第03讲 solr5之Solrconfig第04讲 solr5单机安装与配置第05讲 solrj基础(一)第06讲 solrj基础(二)第07讲 solrj之SolrBean第08讲 solrj语法详解第09讲 Solrj之Multicore查询第10...