solr 安装配置学习记录

solr

Author : Janloong Do_O

solr

版本 : solr 7.0.0 +

常规安装部署

目录结构

目录 文件 描述
bin 脚本命令目录
solr and solr.cmd 启动脚本
solr.in.sh and solr.in.cmd 启动参数配置文件
install_solr_services.sh 设置服务脚本
contrib 扩展插件
dist solr依赖的jar
docs 文档
example 各种example
exampledocs
example-DIH
files
films
server solr核心应用
server/solr-webapp admin ui页面
server/lib server应用的lib依赖
server/solr solr主应用

配置

solr.in.sh配置java环境变量

启动

./bin/solr start
./bin/solr start -force

访问

端口8983

结合tomcat

配置

1. 解压solr7.0.tgz 文件到 /usr/local 重命名为solr7

2. 拷贝solr7\server\solr-webapp\webapp文件夹至%TOMCAT_HOME%\webapps\下
并重命名webapp为solr

3. 将solr7\server\lib\ext下的所有jar包,以及solr7\server\lib下以metrics开头的jar、
gmetric4j-1.0.7.jar复制到apache-tomcat-8.5.15\webapps\solr\WEB-INF\lib下

4. 在%TOMCAT_HOME%\webapps\webapp\WEB-INF中,新建classes文件夹,
将solr7\server\resources下的log4j.properties文件拷贝到里面

5. 修改tomcat脚本catalina.bat,增加solr.log.dir系统变量,指定solr日志记录存放地址
   注:如果不处理此步,日志将不能正常打印。log4j.properties中有依赖此变量

   233行左右
   set "JAVA_OPTS=%JAVA_OPTS% -Dsolr.log.dir=[目录]"
   上述写法有问题
   暂为:
   JAVA_OPTS="$JAVA_OPTS -Dsolr.log.dir=[path]"

6. 创建SOLR HOME目录(/usr/local/solr_tomcat)> %SOLR_HOME%

7. 拷贝solr7\server\solr\下所有文件、文件夹至%SOLR_HOME%目录下

8. 配合solr日志记录存放地址,在%SOLR_HOME%下新建logs文件夹

9. 拷贝solr7 下contrib和dist文件夹至%SOLR_HOME%目录下

10. 在%SOLR_HOME%目录下新建new_core文件夹;
    并拷贝solr7\server\solr\configsets\_default\目录下conf文件夹至%SOLR_HOME%\new_core下

11. 修改%SOLR_HOME%\new_core\conf\solrconfig.xml文件

     
     

     
     

     
     

     
     


12. 修改%TOMCAT_HOME%\webapps\solr\WEB-INF中的web.xml文件

    新增部分
        
           solr/home
           /usr/local/solr_tomcat
           java.lang.String
        


    注释部分

    
      
        
          Disable TRACE
          /
          TRACE
        
        
      
      
        
          Enable everything but TRACE
          /
          TRACE
        
      

核心实例目录

instanceDir
对应%SOLR_HOME%\new_core

dataDir
对应%SOLR_HOME%\new_core\data

config
对应%SOLR_HOME%\new_core\conf\solrconfig.xml

schema
对应%SOLR_HOME%\new_core\conf\managed-schema

solr 应用

数据源导入

core实例

在solr的工作目录中选择一个core,我这里选择core1。进入配置文件夹:solr_tomcat\solr\core1\conf
在solrconfig.xml中添加如下代码:


   
    data-config.xml
   
 

data-config.xml 配置文件


    
     
       
          
              
              
              
              
              
              
          
     
    

manage-schema.xml

  
  
  
  
  
  

基础用法

查询

q 查询的关键字,此参数最为重要,例如,q=id:1,默认为q=:
fl 指定返回哪些字段,用逗号或空格分隔,注意:字段区分大小写,例如,fl= id,title,sort
start 返回结果的第几条记录开始,一般分页用,默认0开始
rows 指定返回结果最多有多少条记录,默认值为 10,配合start实现分页
sort 排序方式,例如id desc 表示按照 “id” 降序
wt (writer type)指定输出格式,有 xml, json, php等
fq (filter query)过虑查询,提供一个可选的筛选器查询。返回在q查询符合结果中同时符合的fq条件的查询结果,例如:q=id:1&fq=sort:[1 TO 5],找关键字id为1 的,并且sort是1到5之间的。
df 默认的查询字段,一般默认指定。
qt (query type)指定那个类型来处理查询请求,一般不用指定,默认是standard。
indent 返回的结果是否缩进,默认关闭,用 indent=true
version 查询语法的版本,建议不使用它,由服务器指定默认值。

检索运算符

“:” 指定字段查指定值,如返回所有值:
“?” 表示单个任意字符的通配
* 表示多个任意字符的通配(不能在检索的项开始使用*或者?符号)
“~” 表示模糊检索,如检索拼写类似于”roam”的项这样写:roam~将找到形如foam和roams的单词;roam~0.8,检索返回相似度在0.8以上的记录。
AND、|| 布尔操作符
OR、&& 布尔操作符
NOT、!、- 排除操作符不能单独与项使用构成查询)
“+” 存在操作符,要求符号”+”后的项必须在文档相应的域中存在²
( ) 用于构成子查询
[] 包含范围检索,如检索某时间段记录,包含头尾,date:[201507 TO 201510]
{} 不包含范围检索,如检索某时间段记录,不包含头尾date:{201507 TO 201510}

高亮

h1 是否高亮,hl=true,表示采用高亮
hl.fl 设定高亮显示的字段,用空格或逗号隔开的字段列表。要启用某个字段的highlight功能,就得保证该字段在schema中是stored。如果该参数未被给出,那么就会高亮默认字段 standard handler会用df参数,dismax字段用qf参数。你可以使用星号去方便的高亮所有字段。如果你使用了通配符,那么要考虑启用hl.requiredFieldMatch选项。
hl.requireFieldMatch 如果置为true,除非用hl.fl指定了该字段,查询结果才会被高亮。它的默认值是false。
hl.usePhraseHighlighter 如果一个查询中含有短语(引号框起来的)那么会保证一定要完全匹配短语的才会被高亮。
hl.highlightMultiTerm 如果使用通配符和模糊搜索,那么会确保与通配符匹配的term会高亮。默认为false,同时hl.usePhraseHighlighter要为true。
hl.fragsize 返回的最大字符数。默认是100.如果为0,那么该字段不会被fragmented且整个字段的值会被返回。

分组

官方wiki:http://wiki.apache.org/solr/SimpleFacetParameters#Facet_Fields_and_Facet_Queries,

这是facet的官方wiki,里面有facet各个参数的详细说明。所以这里只说一些常用的。

Facet是Solr的核心搜索功能,主要是导航(Guided Navigation)、参数化查询(Paramatic Search)。Facet的主要好处是在搜索的同时,可以按照Facet条件进行分组统计,给出导航信息,改善搜索体验。

Field Facet

参数 描述
facet 参数字段必须被索引
facet=on 或 facet=true
facet.field 分组的字段
facet.prefix 表示Facet字段前缀
facet.limit Facet字段返回条数
facet.offict 开始条数,偏移量,它与facet.limit配合使用可以达到分页的效果
facet.mincount Facet字段最小count,默认为0
facet.missing 如果为on或true,那么将统计那些Facet字段值为null的记录
facet.sort 表示 Facet 字段值以哪种顺序返回 .格式为 true(count)

Date Facet

对日期类型的字段进行 Facet.  Solr 为日期字段提供了更为方便的查询统计方式 .注意 , Date Facet的字段类型必须是 DateField( 或其子类型 ). 需要注意的是 , 使用 Date Facet 时 , 字段名 , 起始时间 , 结束时间 , 时间间隔这 4 个参数都必须提供 .
facet.date  该参数表示需要进行 Date Facet 的字段名 , 与 facet.field 一样 , 该参数可以被设置多次 , 表示对多个字段进行 Date Facet.
facet.date.start 起始时间 , 时间的一般格式为 ” 2015-12-31T23:59:59Z”, 另外可以使用 ”NOW”,”YEAR”,”MONTH” 等等 ,
facet.date.end  结束时间
facet.date.gap 时间间隔,如果 start 为 2015-1-1,end 为 2016-1-1,gap 设置为 ”+1MONTH” 表示间隔1 个月 , 那么将会把这段时间划分为 12 个间隔段 .
facet.date.hardend  表示 gap 迭代到 end 时,还剩余的一部分时间段,是否继续去下一个间隔. 取值可以为 true|false, 默认为 false.
例 start 为 2015-1-1,end 为 2015-12-21,gap 为 ”+1MONTH”, 如果hardend 为 false,则,最后一个时间段为 2015-12-1 至 2016-1-1; 反之,如果 hardend 为 true,则,最后一个时间段为 2015-12-1 至 2015-12-21.

资料参考

solr7.0.0配置

solr基础用法

你可能感兴趣的:(学习笔记,Web,Linux)