python操作solr从入门到掌握

一.安装并创建core
1.1安装
cd /usr/local/
wget http://mirrors.hust.edu.cn/apache/lucene/solr/7.7.3/solr-7.7.3.tgz
tar -zxvf solr-7.7.3.tgz

# 启动
cd /usr/local/solr-7.7.3/bin
./solr start -force
1.2安装创建core
#### 环境添加core
cd /usr/local/solr-7.7.3/server

# 添加自己的solr core
mkdir new_core

cd /usr/local/solr-7.7.3/server/solr/configsets/_default

cp -r ./conf /usr/local/solr-7.7.3/server/solr/new_core

界面添加core

在这里插入图片描述

二.pysolr操作solr
# 需要新建一个new_core不然会报错 步骤1.2
solr = pysolr.Solr('http://127.0.0.1:8983/solr/new_core', always_commit=True, )
# 查看solr是否能ping得通
# print(solr.ping())
2.1插入数据
for i in range(1,2000):
    solr.add([
        {
            "id": "doc_%d"%i,
            "title": "A TeST document",
            "article": "my name is Cocktail_py%d"%i,
            "translation": "Nice to Cocktail_py%d"%i,
        },


        {
            "id": "doc_2",
            "title": "The Banana: Tasty or Dangerous?",
            "_doc": [
                { "id": "child_doc_1", "title": "peel" },
                { "id": "child_doc_2", "title": "seed" },
            ]
        },
    ])

# 搜索new_core中的全部数据
results = solr.search('*:*')
print(results.docs)
2.2分页
# 假设一页返回10条数据
# 返回第一页
results = solr.search('*:*', start=0 * 10, rows=10)


# 返回第二页
results = solr.search('*:*', start=1 * 10, rows=10)
print(results.docs)

# 返回第三页
results = solr.search('*:*', start=2 * 10, rows=10)
print(results.docs)
2.3深分页 (基于排序进行)
# https://blog.csdn.net/weixin_42257250/article/details/97107933
# https://blog.csdn.net/asdfsadfasdfsa/article/details/80072533
# results = solr.search(q="""
# *:*
# &sort=id desc
# &cursorMark=*
# """)
results = solr.search(q='*:*', sort="id asc", cursorMark="*")

# 获取原始数据
# raw_rep = results.raw_response
scroll_size  = len(results.docs)
data = results.docs
print(data)

# 获取游标
nextCursorMark = results.nextCursorMark


while (scroll_size > 0):
    results = solr.search(q='*:*', sort="id asc", cursorMark=nextCursorMark)
    nextCursorMark= results.nextCursorMark
    data = results.docs
    scroll_size = len(data)
    print(data)
2.4模糊查询 (最普遍使用的模糊查询就是使用通配符)
# https://blog.csdn.net/qq_22929803/article/details/46924487
# 查询文章中含有cocktail_py的字符 似乎默认忽略大小写
results = solr.search('article:*cocktail_py*')
print(results.docs)


# # 默认term并且忽略大小写
results = solr.search(q='title:bAnana', )

2.5完全匹配查询
# https://blog.csdn.net/babydavic/article/details/8657277
# 将关键字 用 双引号 包起来
results = solr.search('article:"Cocktail_py1018"')
2.6聚合查询
# https://blog.csdn.net/vtopqx/article/details/76099078
# http://localhost:8983/solr/solr_select/query?q=*:*&facet=on&facet.field=name
params = {
    "facet": "on",
    "facet.field": "id",
}
results = solr.search(q="*:*", **params)

更多
https://blog.csdn.net/li295214001/article/details/46044841
https://blog.csdn.net/lyf_ldh/article/details/82733824
https://blog.csdn.net/opoppinboy/article/details/75907414
https://blog.csdn.net/sethcss/article/details/84999615
https://pypi.org/project/pysolr/
https://blog.csdn.net/u013160017/article/details/81037279

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Cocktail_py

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值