基於python實現whoosh全文搜尋神器。

2021-10-04 14:11:47 字數 2031 閱讀 9224

注意:本文使用的是jupyter做演示。

(1)、jupyter notebook安裝

pip install jupyter notebook

jupyter notebook命令在相應的目錄下啟動即可

(2)、whoosh安裝

pip install whoosh

(3)、jieba分詞器安裝----->目前最火最叼的中文分詞器

pip install jieba

import pandas as pd

data = [,,,

,,,,

]frame = pd.dataframe(data)

from whoosh.fields import schema, text, id

from jieba.analyse import chineseanalyzer

# jieba中文分詞器

analyzer = chineseanalyzer()

schema = schema(t=id(stored=true, unique=true),

d1=text(stored=true, analyzer=analyzer),

d2=text(stored=true)

)

import os.path

from whoosh.index import create_in

# 建立索引的路徑,也就是存放的位置

index_path = '/home/sjp/gitproject/test_data'

if not os.path.exists(index_path):

os.mkdir(index_path)

ix = create_in(index_path, schema)

from whoosh import index

index_path = '/home/sjp/gitproject/tests/test_data'

ix = index.open_dir(index_path)

with ix.writer() as writer:

for _, row in frame.iterrows():

elements =

# 我用的是update,後期可以更新

writer.update_document(**elements)

from whoosh.qparser import multifieldparser, operatorsplugin

from whoosh import query

ix = index.open_dir(index_path)

# multifieldparser這個是多字段查詢

query_parser = multifieldparser(['t', 'd1', 'd2'], schema=ix.schema)

# query_parser.add_plugin(fuzzytermplugin()) 這個是支援模糊查詢

search_pattern = query_parser.parse(u'國')

with ix.searcher() as searcher:

# 介個是limit=none是查詢所有

result = searcher.search(search_pattern, limit=20)

# 介個是支援分頁查詢

# result = searcher.search_page(search_pattern, 1, pagelen=20)

for _ in result:

print _.values()

後記:正所謂先把程式跑起來,再去看文件做優化,這才是最快的學習方式------>自我觀點。

所以呢此處貼上中文文件供各位參考:

python日曆教程 基於python實現簡單日曆

首先要理清楚邏輯,日曆的難點在於如何使用基礎知識將周幾與對應的日期進行對應,我這裡利用了1917年1月1日為星期1,計算累計到我們要查詢的月份的天數來確定所查詢月份的第一天為週幾.輸出日曆介面 print 50 print 歡迎使用 天天日曆 v2.0 接收使用者輸入的年份 year int int...

Python 基於Python實現批量建立目錄

基於python實現批量建立目錄 by 授客qq 1033553122 測試環境 python 版本 python 2.7 實踐 usr bin env python coding utf 8 author shouke import os class publictools def init se...

Python基於template實現字串替換

下面介紹使用python字串替換的方法 1.字串替換 將需要替換的內容使用格式化符替代,後續補上替換內容 template hello s your website is s 大cc print template 也可使用format函式完成 template 程式設計客棧 hello your w...