三、Solr管理控制台(二)

索引库相关操作

Overview

索引库的总览,显示集合的信息和分片信息
三、Solr管理控制台(二)

Analysis

分析器:这个功能可以用来调试字段的分词效果
三、Solr管理控制台(二)
左边部分是针对索引解析器的处理过程,右边部分是针对查询解析器的处理过程,我们来做一下测试,选择底部的字段或者字段类型,这里我们选择content字段,输入“I love you”,然后点击Analyse Values按钮,让我们来看一下索引解析器和查询解析器的处理结果
三、Solr管理控制台(二)
从图中可以看出,左侧索引使用到的解析器如下:

  1. ST解析器(StandardTokenizer)- 标准解析器
  2. SF解析器(StopFilter) - 停用词解析器
  3. LCF解析器(LowerCaseFilter) - 小写转换解析器

右侧查询使用到的解析器如下:

  1. ST解析器(StandardTokenizer)- 标准解析器
  2. SF解析器(StopFilter) - 停用词解析器
  3. SGF解析器(SynonymGraphFilter) - 同义词解析器
  4. LCF解析器(LowerCaseFilter) - 小写转换解析器

我们可以通过managed-schema的配置文件来查看下content字段的配置吧,来增进我们的理解,我们从solr管理控制台的Files菜单也可以查看managed-schema文件的内容
三、Solr管理控制台(二)

 <field name="content" type="text_general" indexed="false" stored="true" multiValued="true"/>

我们可以看到content字段的字段类型是text_general字段类型,我们再来看看字段类型text_general的配置内容

 <fieldType name="text_general" class="solr.TextField" positionIncrementGap="100">
    <analyzer type="index">
        <tokenizer class="solr.StandardTokenizerFactory"/>
        <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
        <!-- in this example, we will only use synonyms at query time 
        <filter class="solr.SynonymGraphFilterFactory" synonyms="index_synonyms.txt" ignoreCase="true" expand="false"/>
        <filter class="solr.FlattenGraphFilterFactory"/> --> 
        <filter class="solr.LowerCaseFilterFactory"/>
    </analyzer>
    <analyzer type="query">
    <tokenizer class="solr.StandardTokenizerFactory"/>
        <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
        <filter class="solr.SynonymGraphFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
        <filter class="solr.LowerCaseFilterFactory"/>
    </analyzer>
</fieldType>

从配置文件可以看出,text_general字段类型的解析器有两个,一个是index(索引数据时使用的解析器),一个是query(查询数据时使用的解析器)

Dataimport

数据导入:可以将其他数据源的数据导入到Solr中,8.6版本后官方就不建议使用这种方式了
三、Solr管理控制台(二)

有的人安装完Solr后点击这个菜单不一定会出来这个界面或者有显示这个界面,但是功能确不能正常使用,那是因为要能正确运行该功能,需要在配置文件中进行配置修改,配置文件是solrconfig.xml,打开后可以找到如下这段配置内容

<requestHandler name="/dataimport" class="solr.DataImportHandler">
    <lst name="defaults">
        <str name="config">solr-data-config.xml</str>
    </lst>
</requestHandler>

从配置内容可以看到dataimport处理器还引用了solr-data-config.xml文件,我们打开solr-data-config.xml文件,如果这个文件不存在,可自行创建,切记,不要在该配置文件中添加<?xml version="1.0" encoding="UTF-8" ?>笔者当时添加了反而报错,找了好久才发现问题所在

<dataConfig>
    <dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver"  url="jdbc:mysql://localhost:3306/solrdb?characterEncoding=utf8" user="root" password="root"/>
    <document>
        <entity name="book" query="select id,name,author,description from books"></entity>
    </document>
</dataConfig>

配置完后,在Solr管理控制台,点击dataimport菜单
三、Solr管理控制台(二)
选择完数据源后点击Execute按钮,等待数据导入完成,当然导入的数据如果字段不存在的话,需要实现在manage-schema配置文件中进行配置并重启Solr才能导入

Documents

索引文档的相关操作,一般新增、修改、删除索引文档数据都在这个菜单完成
三、Solr管理控制台(二)
我们可以看到请求处理器是/update
对应的配置文件,可以到solrconfig.xml文件中进行查看,可以看到update对应的处理部分配置如下:

<updateHandler class="solr.DirectUpdateHandler2">
    <updateLog>
        <str name="dir">${solr.ulog.dir:}</str>
    </updateLog>
    <autoCommit>
        <maxTime>${solr.autoCommit.maxTime:15000}</maxTime>
        <openSearcher>false</openSearcher>
    </autoCommit>
    <autoSoftCommit>
        <maxTime>${solr.autoSoftCommit.maxTime:-1}</maxTime>
    </autoSoftCommit>
 </updateHandler>
  1. 添加文档:以json串举例,这里要注意,json的key需要在managed-schema配置文件中有定义,否则将无法保存成功
{
    "id": 1,
    "name": "这是名称",
    "title": "这是测试文档"
}

2.修改文档:Solr的修改文档底层是先删除再新增,所以修改文档的话,需要把原文档的所有字段都需要录入

{
    "id": 1,
    "name": "这是名称11111",
    "title": "这是测试文档11111",
    "content": "测试内容"
}

3.删除文档:删除文档只能以xml的方式来执行,格式如下:

<delete>
    <query>*:*</query>
</delete>

Files

查看当前Collection的相关配置文件
三、Solr管理控制台(二)

Query

查询解析器:Solr管理控制台提供的查询索引数据的工具,这里暂时先介绍常用的几个参数,后续有机会再补充其他的参数说明
三、Solr管理控制台(二)
下面对各个参数进行下解释
q:查询条件,常用的列举如下
查询所属有文档: :
查询id为1的文档:id:1
查询id大于等于1小于等于10的文档:id:[1 TO 10]
查询主文档,当然,需要在主文档中所有的索引数据添加isParent_b字段,否则查询无效:{!child of=": -isParent_b:true"}
查询子文档:{!child of=": -isParent_b:false"}
fq:查询过滤(Filter query),在q参数查询条件情况下进一步过滤,类似sql的子查询
sort:字段排序
三、Solr管理控制台(二)
start,rows:分页获取数据时用到,start:从第几条记录开始,rows:从starts位置获取几条数据
fl:字段列表,获取查询的结果集字段列表
df:默认查询字段
hl:高亮查询使用
facet:查询统计使用

Schema

三、Solr管理控制台(二)
除了动态配置字段外,还可以通过菜单Schema来实现字段的动态配置
点击下拉列表,可以选择现有的字段列表,这里我们选择C_Subject_s字段,右边显示该字段的相关属性,显示如下:
三、Solr管理控制台(二)
Indexed:这个字段可被索引
Stored:这个字段会被存储到索引文档数据
MultiValues:这个字段是否可以存储多个值
其他几个属性目前还未知,等后续了解清楚后再补充

1.Add Field:添加普通字段,界面显示如下:
三、Solr管理控制台(二)
name:输入字段名称
field type:字段类型选择
default:默认值
勾选项说明:
stored:这个字段是否能被存储
indexed:这个字段是否能被索引
multiValued:这个字段是否能存储多值
required:这个字段是否是每个文档必须要保存的字段
2.Add Dynamic Field:添加动态字段,界面如下:
三、Solr管理控制台(二)
动态字段类似添加字段
3.Add Copy Field:添加拷贝字段,拷贝字段主要是将索引文档的多个字段映射到该字段,后续可通过查询该字段实现多个字段的查询功能,配置界面如下:
三、Solr管理控制台(二)

上一篇:ElasticSearch


下一篇:2018横滨区域赛B Arithmetic Progressions【DP】