Solr的使用
一。入门
1. 概念:
● 向solr提供信息称为索引或更新。提出问题找到所需要信息称为查询。
理解solr工作原理的一种办法是想象一本活页食谱书。每次向书中添加菜谱,添加成份及对应页码,查询成份很容易就得到食谱的页码了。
● 文档由描述事物的若干字段组成,字段可能是不同类型的数据。
● 字段分析告诉solr在构建索引时如何处理传入数据。
2. Solr索引:
● 向Solr索引中添加的数据可能包括:xml文件,csv文件,数据库提取的数据,office/word/pdf等其他格式数据
● 向solr索引加载数据常用方法有基于apache tika摄取二进制文件,http请求上传xml文件,java api方式,测试环境用curl方式。
3. Solr搜索:
● 为了处理搜索查询,请求处理程序调用查询解析器。不同查询解析器支持不同语法,默认是标准查询解析器更允许精确的搜索。DisMax更类似Google的体验,对错误容忍度更高。Extended DisMax是DisMax的改进版,除了处理完整的Lucene查询语法,同时仍然容忍语法错误。
● 查询解析器输入包括:搜索字符串、搜索项之间的布尔逻辑,搜索呈现参数。
4. 关联
精度:返回结果中相关文档的百分比。
召回率:所有相关结果中返回相关结果的百分比。知道了相关结果不一定能召回。
二。部署
Solr控制脚本参考:
● 启动bin/solr start [options]
● 重启bin/solr restart [options]
● 停止bin/solr stop [options]
● 版本bin/solr version
● 状态 bin/solr status
● 断言 bin/solr assert --exists /opt/bin/solr
● 健康检查 bin/solr healthcheck [options]
● 创建集合 bin/solr create [options]
● 创建收藏 bin/solr create_collection [options]
● 创建一个核心 bin/solr create_core [options]
● 删除集合 bin/solr delete [options]
● 验证 bin/solr auth enable
● 设置属性 bin/solr config [options]
● zookeeper操作 bin/solr zk [sub-command] [options]
● 导出文档到文件 bin/solr export [options]
● 导入数据curl -X POST -d @gettingstarted.json 'http://localhost:8983/solr/test_collection/update/json/docs?commit=true'
● 向api端点发送http请求 bin/solr api api -get http://localhost:8983/solr/techproducts/select?q=*:*
三。配置
Solr配置文件:
● solr.xml指定 Solr 服务器实例的配置选项
● core.properties定义每个核心的特定属性,例如其名称、核心所属的集合、架构的位置和其他参数
● solrconfig.xml控制高层行为。例如,您可以指定数据目录的备用位置
● managed-schema.xml或schema.xml描述您将要求 Solr 建立索引的文档。该模式将文档定义为字段的集合。您可以定义字段类型和字段本身。
● data/包含索引文件。
四。架构和索引
分析仪
● <fieldType name="nametext" class="solr.TextField">
<analyzer>
<tokenizer name="standard"/>
<filter name="lowercase"/>
<filter name="stop"/>
<filter name="englishPorter"/>
</analyzer>
</fieldType>
● 分析在两种情况下进行。在索引时,当创建字段时,分析结果的标记流将添加到索引中,并定义该字段的术语集(包括位置、大小等)。在查询时,将分析正在搜索的值,并将结果的术语与存储在字段索引中的术语进行匹配
分词器
● 分词器负责将字段数据分解为词汇单元或标记。
● 标准分词器、经典分词器、关键词分词器、字母分词器、小写分词器、N-Gram分词器、边缘N-Gram分词器、ICU分词器、路径层级分词器、正则表达式模式分词器、简化的正则表达式模式分词器、简化的正则表达式模式分隔分词器、UAX29 URL电子邮件标记器、空白分词器
过滤器
● 过滤器检查令牌流并根据所使用的过滤器类型保留它们、转换它们或丢弃它们。
● ascii折叠过滤器、贝德摩尔斯滤波器、经典过滤器、普通克过滤器、通过Grams查询过滤器、排序规则键过滤器等