简介
Pysolr,是基于Python的Apache Solr轻量级封装。
特性(pysolr 3.8.1 )
- Basic operations such as selecting, updating & deleting.
- Index optimization.
- “More Like This” support (if set up in Solr).
- Spelling correction (if set up in Solr).
- Timeout support.
- SolrCloud awareness
环境
- Ubuntu 16.04
- Python 3.x
- Requests 2.9.1+
- Optional - simplejson
- Optional - kazoo for SolrCloud mode
安装
-
安装solr 5.0.0
-
1、下载solr 5.0.0:
http://archive.apache.org/dist/lucene/solr/5.0.0/ -
2、安装
详情参考:https://blog.csdn.net/zmx729618/article/details/53395991
-
-
安装pysolr 3.8.1
pip3 install pysolr==3.8.1
示例代码
对jcg核心的常见操作
from __future__ import print_function
import pysolr
#jcg核心
solr = pysolr.Solr('http://localhost:8983/solr/jcg/', timeout=10)
#往jcg插入数据(与books.csv字段相同,字段可以少但不能多)
solr.add([
{
"id": "doc_1",
"name": "A test document",
"cat": "book",
"price": "7.99",
"inStock": "T",
"author": "George R.R. Martin",
"series_t": "A Song of Ice and Fire",
"sequence_i": "1",
"genre_s": "fantasy",
}
])
#搜索
#搜索jcg中的全部数据
results = solr.search('*:*')
#搜索id为doc_1的数据
doc1 = solr.search('id:doc_1')
#查看长度
print (len(results))
#打印所有文档
print (results.docs)
#打印文档中的name属性值
for result in results:
print (result['name'])
#删除id为doc_1的数据
solr.delete(id='doc_1')
#删除所有数据
solr.delete(q='*:*')
solr检索运算符
冒号":": field:value结构查询,表示字段field值为value的查询。
通配符:?(任意一个字符) *(任意字符)
布尔操作:AND(并且,同&&) OR(或者,同||) +(包含) -(不包含) NOT(同!),注意AND、OR、NOT均为大写
范围:[A TO B] (从A到B之间,包含A和B,注意TO大写),{A TO B}(从A到B之间,不包含A和B,注意TO大写)
子运算:()括号跟数学表达式上的差不多,比如:(瓜 OR 傻) AND 男人
模糊检索:~ 表示模糊检索,比如:roam~ 将找到形如foam和roams的单词;roam~0.8,检索返回相似度在0.8以上的记录
控制相关度:^ 表示相关度,如检索jakarta apache,同时希望让”jakarta”的相关度更加好,那么在其后加上”^”符号和增量值,即jakarta^4 apache
solr自定义排序
参考
- https://pypi.org/project/pysolr/
- https://www.cnblogs.com/cuihongyu3503319/p/9391513.html
- 查询语法及参数:https://blog.csdn.net/zhufenglonglove/article/details/51518846