jieba+whoosh实现简单的商品搜索功能

本文介绍如何利用jieba的分词功能和whoosh的索引能力,实现一个简单的商品搜索功能。首先,介绍了项目的准备工作,包括安装jieba和whoosh库。接着,详细说明了创建索引文件的过程,以及如何处理中文分词问题。然后,展示了如何进行简单的查询,并探讨了索引的增删改查操作。最后,作者分享了在实现过程中遇到的问题及解决经验,提醒读者注意操作细节。
摘要由CSDN通过智能技术生成
功能描述

实现一个类似淘宝的搜索功能,例如下面这个例子
在这里插入图片描述
简单点来说我们需要先根据商品名称创建索引,然后再用索引文件匹配去查询字符串来实现商品的搜索,这种搜索是有别于正则匹配的,他会对字符串进行分词处理,准确度也会更高。


准备工作

这个项目种主要用到了jieba、whoosh两个库,其中jieba实现对中文的分词处理,whoosh则是创建索引文件。
安装依赖:

  • 系统:Ubuntu 16.04
  • Python版本: 3.5
    pip install jieba
    pip install whoosh
    

测试数据:
从github上找到的空气净化器的csv数据,需要的可点击下载测试数据


正式开始
  • 创建索引文件
    首先需要利用whoosh提供的接口对csv中的数据进行处理,生成索引文件。
    whoosh对中文分词处理不是很好,所以选择jieba实现对中文的分词处理,jieba这个库也有对whoosh的支持,所以处理起来很方便,直接将索引模式中的analyzer更换为jieba的ChineseAnalyzer即可。

    schema定义了索引的模式,规定了索引的字段信息,其中索引字段包含IDSTROEDKEYWORDTEXTNUMERICBOOLEANDATETIME等几种,具体的含义和使用对象还是去看whoosh的官方文档来的直接,另外schema只需要我们创建一次,然后就会和索引一起被保存。(只需在第一次创建的时候声明schema)
    from whoosh.index import create_in
    from whoosh.fields import *
    from jieba.analyse.analyzer import ChineseAnalyzer
    import os.path
    import csv
    
    def create_index():
    	"""
    	创建索引文件
    	:return: None
    	"""
    	analyzer = ChineseAnalyzer()
    	schema = Schema(id=ID(stored=True, unique=True), content=TEXT(stored=True, analyzer
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值