Solr基本概念

Solr是一种开放源码的、基于Lucene的搜索服务器。它易于安装和配置,而且附带了一个基于HTTP 的管理界面。

官网: http://lucene.apache.org/solr/

Solr全文检索基本原理:

http://www.importnew.com/12707.html


相关概念:
  • Core:    对应于standalone(独立模式)
  • Collection:    对应于solrCloud(云模式)。注:在独立模式以是以core来管理,在云模式下是collection来管理。
  • facet维度,相当于对查询结果的统计
  • constraints约束,维度中的子类
  • breadcrumb面包屑,根据选择, 列出的导航路径(选中列表)
俗话说“一张图胜过一千个字”,比如淘宝搜索“数码相机”,这三个概念对应如下:
Solr基本概念_第1张图片


搜索请求参数:
参数
说明
q
要搜索的内容。
  • 如果要搜索一个句子,用引号引起来:q="Hello wolrd"
  • 如果指定搜索某个域:q=field_name:content
  • 如果是中文,用引号引起来,就是全内容匹配才返回,如:q="笔记"
  • 如果要搜索多个单词、句子,使用加号(+):q="笔记"+"配置"
  • 如果要排除含有某个关键字的,使用减号(-):q="笔记"-"配置"
fq
Filter Query,搜索结果过滤(结果会被缓存起来):
  • fq=popularity:[10 to *]:只返回popularity大于10的结果
  • 需要同时满足两个条件的情况:fq=popularity:[10 TO *]&fq=section:0
  • 上面这种也可以写成:fq=popularity:[10 TO *]+fq=section:0
后两种的不同点:前一种:搜索结果分开存在缓存中,然后取交集;后一种:搜索结果存在一个缓存中
sort
指定搜索结果按照某个域来排序,例子:
  • score desc(缺省):按照搜索分数降序排序
  • price asc:按照“price”域升序排序
  • nStock desc, price asc:先按照nStock降序,再按照price升序
start, rows
返回第start条开始,一共rows条记录,例子:
  • start=11&rows=100
  • 缺省:start=0, rows=10
fl
要返回的域,比如“id”、*,如果有多个,用逗号(,)分开,还可以返回score。例子
  • fl=id,name
  • fl=id,score
  • fl=*,score
df
 默认的查询字段,重新指定并覆盖schema.xml中的default field
wt
结果的格式,json, xml...
facet
统计查询结果:
按某个域统计:facet=true&facet.field=author(按照“author”这个域统计)
参考: https://cwiki.apache.org/confluence/display/solr/Searching

目录说明:
  • dist 各种jar包 
  • contrib 各种jar包 
  • bin 常用命令脚本 
  • server web服务器 
    • solr 创建的core会在该目录下 
      • configsets  solr配置集,新建的core可以从这里拷贝配置 
      • xx-core 
        • conf 配置文件 
          • solrconfig.xml solr的配置信息 
          • schema.xml 分词器配置信息 
        • data 索引等数据 
    • logs 日志文件 
    • webapps web程序部署位置 
  • example  
    • example-DIH 数据导入工具 
  • licenses 各种授权协议 
  • docs api文档

(原创文章,转载请注明转自Clement-Xu的博客)

你可能感兴趣的:(Solr,Lucene,全文检索)