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 ...
这个压缩包“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...
5. **查询(Query)**:Solr支持丰富的查询语法,包括标准查询解析器、Lucene查询语法、布尔运算符、通配符查询、近似查询等,提供灵活的查询能力。 6. ** faceting(分面搜索)**: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...
第01讲 solr5简介第02讲 solr5之Schema第03讲 solr5之Solrconfig第04讲 solr5单机安装与配置第05讲 solrj基础(一)第06讲 solrj基础(二)第07讲 solrj之SolrBean第08讲 solrj语法详解第09讲 Solrj之Multicore查询第10...
6. **测试验证**:通过 Solr 的 Admin UI 或 API 进行测试,查看分词结果是否符合预期,可以通过查询分析器工具进行实时分词演示。 在 Solr 6.0 中,除了 IKAnalyzer,还有其他分词器可供选择,比如 HanLP、jieba ...