欢迎投稿

今日深度:

solr基础理解和功能分析,它建立在Lucene

solr基础理解和功能分析,它建立在Lucene


一、solr概述

Solr是一个开源搜索平台,用于构建搜索应用程序。 它建立在Lucene(全文搜索引擎)之上。Solr是一个可扩展的,可部署,搜索/存储引擎,优化搜索大量以文本为中心的数据。

二、solr管理界面功能

1.Logging

展示Solr的日志,不用去后台查日志,还可以用来配置打印日志级别。

2.Core Admin

支持SolrCore的基本操作。 主要有 Add Core(添加核心), Unload(卸载核心),Rename(重命名核心),Reload(重 新加载核心),Optimize(优化索引库)  

Add Core 是添加 core : 主 要 是 在 instanceDir 对 应 的 文 件 夹 里 生 成 一 个 core.properties 文件 name:给 core 起的名字;   instanceDir:与我们在配置 solr 到 tomcat 里时的 solr_home 里新建的 core 文件夹名一致;   dataDir:确认 Add Core 时,会在 new_core 目录下生成名为 data 的文件夹   config:new_core 下的 conf 下的 config 配置文件(solrconfig.xml)   schema: new_core 下的 conf 下的 schema 文件(schema.xml)

Add Core操作步骤:

(1)首先要在solrhome目录下(我的是在/var/solr/data)建立一个文件夹,文件夹名和要add core的name相同。

(2)然后将solr安装目录/example/example-DIH/solr/db文件夹下的conf文件夹赋值到刚刚新建的文件夹下。

(3)然后在solr管理界面点击add core新增

成功后:

3.Java Properties

显示Java相关属性和配置。

4.Thread Dump

查看每个线程的详细信息,以及状态信息。

5.Core Selector

可以选择并操作已存在的SolrCore。

(1)Overview

显示一些统计信息和元数据,包含基本统计如当前文档数;和实例信息如当前核心的配置目录。

(2)Analysis

检验分词效果。

(3)Dataimport

从数据库导入数据。

Comman选项:full_import:全导入;delta_import:增量导入。

Verbose:
Clean: 在索引开始构建之前是否删除之前的索引,默认为true
Commit: 在索引完成之后是否提交。默认为true
Optimize: 是否在索引完成之后对索引进行优化。默认为true
Debug: 是否以调试模式运行,适用于交互式开发(interactive development mode)之中。
请注意,如果以调试模式运行,那么默认不会自动提交,请加参数“commit=true”

Entity: entity是document下面的标签(data-config.xml)。使用这个参数可以有选择的执行一个或多个entity 。使用多个entity参数可以使得多个entity同时运行。如果不选择此参数那么所有的都会被运行。
Start,Rows:
Custom Parameters:
Excute:执行导入。
Refresh Status:刷新后才能看到数据发生了变化,如果刷新后数据还是0,说明未导入。

(4)Documents

直接对Solr中存储的索引文档进行增删改操作。通过此菜单可以 创建索引、更新索引、删除索引 等。

请求处理器中, /表示更新索引: Solr默认根据id(唯一约束)域来更新Document的内容:

  • 如果根据id值搜索不到id域, 则执行添加操作;
  • 如果根据id值搜索到了id域, 则执行更新操作.

overwrite="true": Solr索引时, 如果文档已经存在, 就用XML中的文档进行替换。

commitWithin="1000": Solr索引时, 每隔1000(1秒)毫秒, 自动执行一次文档提交。

/update下删除索引 -- 将Document Type更换为XML:

(5)Files

solr_home下的core下的conf下的相关文件,可单击查看里面的内容.

(6)Query

查询页面。查询结果要显示哪个字段,conf/schema.xml文件配置字段时的stored属性设为true。

Request-Handler(qt):

q: 查询字符串(必须的)。:表示查询所有;keyword:东看 表示按关键字“东看”查询
fq: filter query 过滤查询。使用Filter Query可以充分利用Filter Query Cache,提高检索性能。作用:在q查询符合结果中同时是fq查询符合的(类似求交集),例如:q=mm&fq=date_time:[20081001 TO 20091031],找关键字mm,并且date_time是20081001到20091031之间的。
sort: 排序。格式如下:字段名 排序方式;如advertiserId desc 表示按id字段降序排列查询结果。
start,rows:表示查回结果从第几条数据开始显示,共显示多少条。
fl: field list。指定查询结果返回哪些字段。多个时以空格“ ”或逗号“,”分隔。不指定时,默认全返回。
df: default field默认的查询字段,一般默认指定。 

wt: write type。指定查询输出结果格式,我们常用的有json格式与xml格式。在solrconfig.xml中定义了查询输出格式:xml、json、python、ruby、php、phps、custom。
indent: 返回的结果是否缩进,默认关闭,用 indent=true | on 开启,一般调试json,php,phps,ruby输出才有必要用这个参数。
debugQuery: 设置返回结果是否显示Debug信息。

hl: high light 高亮。hl=true表示启用高亮
hl.fl : 用空格或逗号隔开的字段列表(指定高亮的字段)。要启用某个字段的highlight功能,就得保证该字段在schema中是stored。如果该参数未被给出,那么就会高 亮默认字段 standard handler会用df参数,dismax字段用qf参数。你可以使用星号去方便的高亮所有字段。如果你使用了通配符,那么要考虑启用 hl.requiredFieldMatch选项。

hl.requireFieldMatch: 如果置为true,除非该字段的查询结果不为空才会被高亮。它的默认值是false,意味 着它可能匹配某个字段却高亮一个不同的字段。如果hl.fl使用了通配符,那么就要启用该参数。尽管如此,如果你的查询是all字段(可能是使用 copy-field 指令),那么还是把它设为false,这样搜索结果能表明哪个字段的查询文本未被找到
hl.usePhraseHighlighter:如果一个查询中含有短语(引号框起来的)那么会保证一定要完全匹配短语的才会被高亮。
hl.highlightMultiTerm:如果使用通配符和模糊搜索,那么会确保与通配符匹配的term会高亮。默认为false,同时hl.usePhraseHighlighter要为true。
facet:分组统计,在搜索关键字的同时,能够按照Facet的字段进行分组并统计。
facet.query:Facet Query利用类似于filter query的语法提供了更为灵活的Facet.通过facet.query参数,可以对任意字段进行筛选。
facet.field:需要分组统计的字段,可以多个。

facet.prefix: 表示Facet字段值的前缀。比如facet.field=cpu&facet.prefix=Intel,那么对cpu字段进行Facet查询,返回的cpu都是以Intel开头的, AMD开头的cpu型号将不会被统计在内。
spatial:
spellcheck: 拼写检查。

(7ping

查看当前核心库还是否工作的以及响应时间。

(8)Plugins / Stats

Solr 自带的一些插件以及我们安装的插件的信息以及统计。

(9)Replication

显示你当前 Core 的副本,并提供 disable/enable 功能。

(10)Schema

展示该 Core 的 shema.xml 文件中的内容

(11)Segments info

www.htsjk.Com true http://www.htsjk.com/solr/45701.html NewsArticle solr基础理解和功能分析,它建立在Lucene 一、solr概述 Solr是一个开源搜索平台用于构建搜索应用程序。 它建立在 Lucene (全文搜索引擎)之上。Solr是一个可扩展的可部署搜索/存储引擎优化...
评论暂时关闭