Solr原理
2015-02-01 17:25:15 1 举报
AI智能生成
Apache Solr检索
作者其他创作
大纲/内容
1,简介
基于Apache Lucene项目的搜索引擎
常规Lucene项目,需要写Java代码创建字段,创建索引
solr对Lucene封装了下,在schema.xml中预定义了大量字段及索引
solr运行起来后,不需要写Java代码,只需通过浏览器就可以执行CRUD操作
对外公布一系列的REST API用于增删查改
2,CRUD
编辑数据库字段
schema.xml
每条记录都有主键: id
可增加自己的字段
配置索引
// 添加/修改 记录
POST /solr/update/json?commit=true HTTP/1.1
Content-Type: application/json
{"add":{"doc": {"id": "1", "username": "troyz", "password":"4synnex", "email": "troyz@synnex.com", "age": 30}}}
// 查询记录
/solr/select?q=id:1&fl=username,email&wt=json
{"numFound":1,"start":0,"docs":[{"username":"troyz","email":"troyz@synnex.com"}]}
//删除记录
POST /solr/update/json?commit=true HTTP/1.1
Content-Type: application/json
{"delete":{"id":"1"}}
2,CRUD
3,solr与database同步问题
add / update / delete时
solr不可见时
database不可见时
http://wiki.apache.org/solr/DataImportHandler
5,Quick start
id
如果是文档,则id是文档路径
add/update
/solr/update
{
"add": {"doc": {"id": "troyz", "name": "Troy Zhang"}},
"add": {"doc": {"id": "gavinl", "name": "Gavin Lei"}}
}
delete
/solr/update
{
"delete": {"id": "id1"},
"delete": {"id": "id2"}
}
select
/solr/select
start=0&rows=10
分页
q
q=troyz
查询所有索引中包含关键字的数据
q=name:troyz
搜索一句话
搜索包含字符串"Troy Zhang"(有顺序)
q="Troy Zhang"
q=name:"Troy Zhang"
q="Troy+Zhang"
q=name:"Troy+Zhang"
搜索单词
搜索包含字符串"Troy"且包含字符串"Zhang"(无序)
q=%2BTroy+%2BZhang
+Troy +Zhang
+编码成%2B
空格 编码成+
fl=id,name
指定返回的字段
wt=json
指定返回数据格式,默认为xml
facet
子主题
Spatial
6,Solr Guide
0 条评论
下一页