关于 Python 文本检索

本文详细介绍如何使用Whooose全文搜索引擎进行数据索引、查询、删除操作,并结合jieba分词器实现中文搜索功能,同时展示如何进行模糊查询及结果高亮显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

whoose 的使用

官网文档: https://whoosh.readthedocs.io/en/latest/quickstart.html
主要想完成的功能:
(1) 在创建数据模型的时候将其添加到 whoose 中;
(2) 在删除数据模型的时候将其从 whoose 中移除;
(3) 支持中文查询;
(4)支持模糊查询。

建立存储目录
def get_search():
    """建立存储目录"""
    index_path = "/Users/furuiyang/codes/microblog/index"
    os.makedirs(index_path, exist_ok=True)
    return index_path
建立索引模式
class MySchema(SchemaClass):
    """
    建立索引模式
    """
    path = ID(stored=True)
    title = TEXT(stored=True)
    content = TEXT
    tags = KEYWORD
写入索引内容
def write_index():
    """写入索引内容"""
    schema = MySchema()
    path = get_search()
    index.create_in(path, schema)

    ix = index.open_dir(path)
    writer = ix.writer()
    # 开始写入内容
    writer.add_document(title=u"my document", content=u"this is my document", path=u"/a",
                        tags=u"firlst short")
    writer.add_document(title=u"my second document", content=u"this is my second document", path=u"/b",
                        tags=u"second short")
    writer.commit()
读出索引内容
def read_index():
    """读出内容"""
    ix = index.open_dir(get_search())
    with ix.searcher() as searcher:
        # (do somthing)
        query = QueryParser("content", ix.schema).parse("*do*")
        result = searcher.search(query)
        print(result)
        print(list(result))
删除索引内容
def delete_index():
    """
    删除索引内容
    :return:
    """
    s
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值