# Solr
# 什么是solr?
Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。
特点:
Solr是一个高性能,采用Java开发,Solr基于Lucene的全文搜索服务器。同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展并对查询性能进行了优化,并且提供了一个完善的功能管理界面,是一款非常优秀的全文搜索引擎。
Lucene是apache软件基金会 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包
# 原理
可以向Solr索引servlet传递四个不同的索引请求: 1) add/update允许向Solr添加文档或更新文档。直到提交后才能搜索到这些添加和更新。 2) commit 告诉Solr,应该使上次提交以来所做的所有更改都可以搜索到。 3) optimize 重构 Lucene 的文件以改进搜索性能。索引完成后执行一下优化通常比较好。如果更新比较频繁,则应该在使用率较低的时候安排优化。一个索引无需优化也可以正常地运行。优化是一个耗时较多的过程。 4) delete 可以通过 id 或查询来指定。按 id 删除将删除具有指定 id 的文档;按查询删除将删除查询返回的所有文档。
创建 product
创建data-config.xml配置数据库信息,solrconfig.xml添加配置,扫描data-config.xml,managed-schema配置数据库和solr映射


搜索

Analysis 索引

Documents 创建数据,有id修改,没有则添加

删除数据

常用命令

高亮

Query 搜索
区间搜索: price:[100 TO 200]
solr 先删数据库,再删solr
字段为空时,排序在最后
sortMissingLast="true"
不包含 exclusive_group:(* NOT *ZYXP_GOODS*)
包含 exclusive_group:(*ZYXP_GOODS*)