使用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获取当前目录路径和上级路径的实例
Apr 26 Python
python实现判断一个字符串是否是合法IP地址的示例
Jun 04 Python
使用Python opencv实现视频与图片的相互转换
Jul 08 Python
对python3中的RE(正则表达式)-详细总结
Jul 23 Python
Python占用的内存优化教程
Jul 28 Python
python多线程实现TCP服务端
Sep 03 Python
Python 获取命令行参数内容及参数个数的实例
Dec 20 Python
在Pytorch中使用Mask R-CNN进行实例分割操作
Jun 24 Python
Python开发入门——迭代的基本使用
Sep 03 Python
基于Python组装jmx并调用JMeter实现压力测试
Nov 03 Python
python 实现超级玛丽游戏
Nov 25 Python
python中pymysql包操作数据库方法
Apr 19 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
PHP 动态随机生成验证码类代码
2010/04/09 PHP
PHPnow安装服务[apache_pn]失败的问题的解决方法
2010/09/10 PHP
PHP图像处理之使用imagecolorallocate()函数设置颜色例子
2014/11/19 PHP
浅谈json_encode用法
2015/03/05 PHP
Symfony2之session与cookie用法小结
2016/03/18 PHP
PHP框架性能测试报告
2016/05/08 PHP
在IE中调用javascript打开Excel的代码(downmoon原作)
2007/04/02 Javascript
extJs 文本框后面加上说明文字+下拉列表选中值后触发事件
2009/11/27 Javascript
jQuery插件 tabBox实现代码
2010/02/09 Javascript
图片延迟加载的实现代码(模仿懒惰)
2013/03/29 Javascript
jquery中$.post()方法的简单实例
2014/02/04 Javascript
jQuery对下拉框,单选框,多选框的操作
2014/02/21 Javascript
jquery实现点击文字可编辑并修改保存至数据库
2014/04/15 Javascript
js生成的验证码的实现与技术分析
2014/09/17 Javascript
理解jQuery stop()方法
2014/11/21 Javascript
Javascript核心读书有感之类型、值和变量
2015/02/11 Javascript
HTML5使用DeviceOrientation实现摇一摇功能
2015/06/05 Javascript
JS基于面向对象实现的多个倒计时器功能示例
2017/02/28 Javascript
详解vue2.0的Element UI的表格table列时间戳格式化
2017/06/13 Javascript
微信小程序实现自定义加载图标功能
2018/07/19 Javascript
js轮播图之旋转木马效果
2020/10/13 Javascript
Python在Console下显示文本进度条的方法
2016/02/14 Python
django 将model转换为字典的方法示例
2018/10/16 Python
浅谈PyQt5 的帮助文档查找方法,可以查看每个类的方法
2019/06/25 Python
Python实现计算对象的内存大小示例
2019/07/10 Python
face++与python实现人脸识别签到(考勤)功能
2019/08/28 Python
python 连续不等式语法糖实例
2020/04/15 Python
施华洛世奇美国官网:SWAROVSKI美国
2018/02/08 全球购物
德国内衣、泳装和睡衣网上商店:Bigsize Dessous
2018/07/09 全球购物
电影T恤、80年代T恤和80年代服装:TV Store Online
2020/01/05 全球购物
《玩具柜台前的孩子》教学反思
2014/02/13 职场文书
学校督导评估方案
2014/06/10 职场文书
优秀工作者事迹材料
2014/12/26 职场文书
校长师德表现自我评价
2015/03/04 职场文书
初中班主任培训心得体会
2016/01/07 职场文书
导游词之泰山玉皇顶
2019/12/23 职场文书