使用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 29 Python
python返回昨天日期的方法
May 13 Python
Python引用类型和值类型的区别与使用解析
Oct 17 Python
wxpython实现图书管理系统
Mar 12 Python
Python反射和内置方法重写操作详解
Aug 27 Python
python实现简单名片管理系统
Nov 30 Python
Python操作json的方法实例分析
Dec 06 Python
Python 给屏幕打印信息加上颜色的实现方法
Apr 24 Python
Django实现文件上传和下载功能
Oct 06 Python
python自动生成model文件过程详解
Nov 02 Python
基于pytorch padding=SAME的解决方式
Feb 18 Python
基于Python的接口自动化读写excel文件的方法
Jan 15 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
Apache中php.ini的设置方法
2013/02/28 PHP
使用php实现下载生成某链接快捷方式的解决方法
2013/05/07 PHP
ThinkPHP模板Volist标签嵌套循环输出多维数组的方法
2016/03/23 PHP
zen_cart实现支付前生成订单的方法
2016/05/06 PHP
PHP从尾到头打印链表实例讲解
2018/09/27 PHP
PHP7使用ODBC连接SQL Server2008 R2数据库示例【基于thinkPHP5.1框架】
2019/05/06 PHP
php+js实现点赞功能的示例详解
2020/08/07 PHP
js 鼠标点击事件及其它捕获
2009/06/04 Javascript
jQuery实现的图文高亮滚动切换特效实例
2015/08/10 Javascript
深入浅析Bootstrap列表组组件
2016/05/03 Javascript
js 提交form表单和设置form表单请求路径的实现方法
2016/10/25 Javascript
利用纯Vue.js构建Bootstrap组件
2016/11/03 Javascript
基于jQuery和Bootstrap框架实现仿知乎前端动态列表效果
2016/11/09 Javascript
jQuery 如何实现一个滑动按钮开关
2016/12/01 Javascript
借助node实战JSONP跨域实例
2017/03/30 Javascript
BootStrap Validator 根据条件在JS中添加或移除校验操作
2017/10/12 Javascript
Vue2 SSR渲染根据不同页面修改 meta
2017/11/20 Javascript
vue中$refs, $emit, $on, $once, $off的使用详解
2019/05/26 Javascript
Windows上node.js的多版本管理工具用法实例分析
2019/11/06 Javascript
Python基于回溯法子集树模板解决选排问题示例
2017/09/07 Python
python版简单工厂模式
2017/10/16 Python
python 从csv读数据到mysql的实例
2018/06/21 Python
Python爬虫实现抓取京东店铺信息及下载图片功能示例
2018/08/07 Python
Django中使用Whoosh进行全文检索的方法
2019/03/31 Python
python读取并写入mat文件的方法
2019/07/12 Python
Python 迭代,for...in遍历,迭代原理与应用示例
2019/10/12 Python
python 实现矩阵按对角线打印
2019/11/29 Python
Pytorch 实现冻结指定卷积层的参数
2020/01/06 Python
HTML5之SVG 2D入门4—笔画与填充
2013/01/30 HTML / CSS
Canvas绘制浮动球效果的示例
2017/12/29 HTML / CSS
巴西最大的家具及装饰用品店:Mobly
2017/10/11 全球购物
澳大利亚最大的在线美发和美容零售商之一:My Hair Care & Beauty
2019/08/24 全球购物
大学生暑期实践感言
2014/02/26 职场文书
学前教育见习总结
2015/06/23 职场文书
一百条裙子读书笔记
2015/07/01 职场文书
护士业务学习心得体会
2016/01/25 职场文书