开源搜索服务器Apache Solr 之 Pysolr


简介

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自定义排序

  • solr入门之权重排序方法初探之使用edismax改变权重:点击查看
  • [solr] - defType - 查询权重排序:点击查看

参考

  • https://pypi.org/project/pysolr/
  • https://www.cnblogs.com/cuihongyu3503319/p/9391513.html
  • 查询语法及参数:https://blog.csdn.net/zhufenglonglove/article/details/51518846

猜你喜欢

转载自blog.csdn.net/zengNLP/article/details/105135955