基于关键词的whoosh创建和搜索

291 篇文章 2 订阅
133 篇文章 9 订阅

创建索引可以先分词,用KEYWORD的类型存储,commas=True可以是空格也可以是逗号可配置,stored=True配置是否和doc存在一起,返回可以一起返回

        if not exists_in(index_dir):
            data_dir = '***'
            df_csv = pd.read_csv(data_dir, usecols=['***', '***', '***', '***', '***', '***'])
            schema = Schema(wid=ID(stored=True), catagory=TEXT(stored=True),
                            classes=TEXT(stored=True), level=TEXT(stored=True),
                            keywords=KEYWORD(commas=True), simwords=KEYWORD(commas=True))
            ix = create_in(index_dir, schema)
            writer = ix.writer()
            for i in range(len(df_csv)):
                writer.add_document(wid=str(df_csv['***'][i]), catagory=df_csv['***'][i],
                                    classes=df_csv['***'][i],
                                    level=df_csv['***'][i],
                                    keywords=re.sub(r"[\[\]\']", '', df_csv['***'][i]),
                                    simwords=re.sub(r"[\[\]\']", '', df_csv['***'][i]))
            writer.commit()
        else:
            ix = open_dir(index_dir)


        with ix.searcher() as searcher:
            query = QueryParser('***', ix.schema).parse(word)
            results = searcher.search(query, limit=None)
            for result in results:
                print(result.fields())

https://whoosh.readthedocs.io/en/latest/api/fields.html#whoosh.fields.ID
commas=True

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值