使用python+whoosh实现全文检索


Posted in Python onDecember 09, 2019

whoosh的官方介绍:http://whoosh.readthedocs.io/en/latest/quickstart.html

因为做的是中文的全文检索需要导入jieba工具包以及whoosh工具包

直接上代码吧

from whoosh.qparser import QueryParser 
from whoosh.index import create_in 
from whoosh.index import open_dir 
from whoosh.fields import * 
from jieba.analyse import ChineseAnalyzer 
from get_comment import SQL 
from whoosh.sorting import FieldFacet 
 
analyser = ChineseAnalyzer()  #导入中文分词工具 
schema = Schema(phone_name=TEXT(stored=True, analyzer=analyser), price=NUMERIC(stored=True), 
          phoneid=ID(stored=True))# 创建索引结构 
ix = create_in("path", schema=schema, indexname='indexname') #path 为索引创建的地址,indexname为索引名称 
writer = ix.writer() 
writer.add_document(phone_name='name',price ="price",phoneid ="id") # 此处为添加的内容  
print("建立完成一个索引") 
writer.commit() 
# 以上为建立索引的过程 
new_list = [] 
index = open_dir("indexpath", indexname='comment') #读取建立好的索引 
with index.searcher() as searcher: 
  parser = QueryParser("要搜索的项目,比如“phone_name", index.schema) 
  myquery = parser.parse("搜索的关键字") 
  facet = FieldFacet("price", reverse=True) #按序排列搜索结果 
  results = searcher.search(myquery, limit=None, sortedby=facet) #limit为搜索结果的限制,默认为10,详见博客开头的官方文档 
  for result1 in results: 
    print(dict(result1)) 
    new_list.append(dict(result1))

注:

Whoosh 有一些很有用的预定义 field types,你也可以很easy的创建你自己的。

whoosh.fields.ID

这个类型简单地将field的值索引为一个独立单元(这意味着,他不被分成单独的单词)。这对于文件路径、URL、时间、类别等field很有益处。

whoosh.fields.STORED

这个类型和文档存储在一起,但没有被索引。这个field type不可搜索。这对于你想在搜索结果中展示给用户的文档信息很有用。

whoosh.fields.KEYWORD

这个类型针对于空格或逗号间隔的关键词设计。可索引可搜索(部分存储)。为减少空间,不支持短语搜索。

whoosh.fields.TEXT

这个类型针对文档主体。存储文本及term的位置以允许短语搜索。

whoosh.fields.NUMERIC

这个类型专为数字设计,你可以存储整数或浮点数。

whoosh.fields.BOOLEAN

这个类型存储bool型

whoosh.fields.DATETIME

这个类型为 datetime object而设计(更多详细信息)

whoosh.fields.NGRAM 和 whoosh.fields.NGRAMWORDS

这些类型将fiel文本和单独的term分成N-grams(更多Indexing & Searching N-grams的信息)

以上这篇使用python+whoosh实现全文检索就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
在Python中使用base64模块处理字符编码的教程
Apr 28 Python
python中引用与复制用法实例分析
Jun 04 Python
Python机器学习算法之k均值聚类(k-means)
Feb 23 Python
python3.X 抓取火车票信息【修正版】
Jun 19 Python
python中cPickle类使用方法详解
Aug 27 Python
python 自动轨迹绘制的实例代码
Jul 05 Python
基于python3生成标签云代码解析
Feb 18 Python
Python流程控制常用工具详解
Feb 24 Python
pip安装提示Twisted错误问题(Python3.6.4安装Twisted错误)
May 09 Python
python3爬虫GIL修改多线程实例讲解
Nov 24 Python
python爬虫中的url下载器用法详解
Nov 30 Python
python实现黄金分割法的示例代码
Apr 28 Python
Python 实现顺序高斯消元法示例
Dec 09 #Python
Python实现线性判别分析(LDA)的MATLAB方式
Dec 09 #Python
在python中做正态性检验示例
Dec 09 #Python
python实现高斯判别分析算法的例子
Dec 09 #Python
Pycharm使用远程linux服务器conda/python环境在本地运行的方法(图解))
Dec 09 #Python
使用 Python 写一个简易的抽奖程序
Dec 08 #Python
布隆过滤器的概述及Python实现方法
Dec 08 #Python
You might like
很温暖很温暖的Lester Young
2021/03/03 冲泡冲煮
用PHP实现浏览器点击下载TXT文档的方法详解
2013/06/02 PHP
php实现的网页版剪刀石头布游戏示例
2016/11/25 PHP
php读取本地json文件的实例
2018/03/07 PHP
laravel 判断查询数据库返回值的例子
2019/10/11 PHP
javascript开发技术大全-第1章javascript概述
2011/07/03 Javascript
正则表达式搭配js轻松处理json文本方便而老古
2013/02/17 Javascript
使用jQuery解决IE与FireFox下createElement方法的差异
2013/11/14 Javascript
JavaScript中textRange对象使用方法小结
2015/03/24 Javascript
JS动态修改iframe高度和宽度的方法
2015/04/01 Javascript
分享9点个人认为比较重要的javascript 编程技巧
2015/04/27 Javascript
详解AngularJS实现表单验证
2015/12/10 Javascript
谈谈我对JavaScript原型和闭包系列理解(随手笔记6)
2015/12/20 Javascript
js HTML5 Canvas绘制转盘抽奖
2020/09/13 Javascript
canvas知识总结
2017/01/25 Javascript
NVM安装nodejs的方法实用步骤
2019/01/16 NodeJs
深入理解vue中的slot与slot-scope
2019/04/22 Javascript
layui将table转化表单显示的方法(即table.render转为表单展示)
2019/09/24 Javascript
[02:47]3.19DOTA2发布会 国服成长历程回顾
2014/03/25 DOTA
[03:30]DOTA2完美“圣”典精彩集锦
2016/12/27 DOTA
[02:37]TI8勇士令状不朽珍藏II视频展示
2018/06/23 DOTA
Python计算回文数的方法
2015/03/11 Python
python numpy 部分排序 寻找最大的前几个数的方法
2018/06/27 Python
Python 数据库操作 SQLAlchemy的示例代码
2019/02/18 Python
pandas计数 value_counts()的使用
2019/06/24 Python
Python连接HDFS实现文件上传下载及Pandas转换文本文件到CSV操作
2020/06/06 Python
pycharm导入源码的具体步骤
2020/08/04 Python
施华洛世奇韩国官网:SWAROVSKI韩国
2018/06/05 全球购物
英国网上购买肉类网站:Great British Meat
2018/10/17 全球购物
双立人加拿大官网:Zwilling加拿大
2020/08/10 全球购物
保送生自荐信范文
2013/10/06 职场文书
小学数学国培感言
2014/03/10 职场文书
大学生学雷锋活动总结
2014/06/26 职场文书
学校2015年纠风工作总结
2015/05/15 职场文书
信用卡收入证明范本
2015/06/12 职场文书
秋季运动会加油词
2015/07/18 职场文书