python的全文檢索庫Whoosh使用示例

2021-10-01 11:20:23 字數 2435 閱讀 4103

pip install whoosh
首先,我有乙個xiaoshuo資料夾,裝了幾部**

直接上**:

首先是建立索引的檔案

from whoosh.filedb.filestore import filestorage

from whoosh.fields import *

from jieba.analyse import chineseanalyzer

import os

analyzer = chineseanalyzer()

schema = schema(

title=text(stored=true),

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

)storage = filestorage('./xiaoshuoindex')

if not os.path.exists('./xiaoshuoindex'):

os.mkdir('./xiaoshuoindex')

ix = storage.create_index(schema)

else:

ix = storage.open_index()

writer = ix.writer()

filelist = os.listdir('./xiaoshuo')

for file in filelist:

content = open('./xiaoshuo/'+file, encoding='utf-8').readlines()

# content是乙個列表,必須轉成字串,才能正常使用

# writer.add_document(title=file, content=content)

writer.add_document(title=file, content=''.join(content))

print(file, '索引完成')

writer.commit()

print('索引全部完成')

索引建立完成之後,會生成乙個資料夾

然後是做個測試

from whoosh.qparser import queryparser

from whoosh.filedb.filestore import filestorage

# 建立索引儲存物件

storage = filestorage('./xiaoshuoindex')

# 開啟索引檔案,獲取索引物件

ix = storage.open_index()

# 獲取搜尋物件searcher,使用者進行搜尋的

# for item in ix.reader().all_terms():

# print(item)

with ix.searcher() as searcher:

# 建立query物件,被用來搜尋的

query = queryparser('content', ix.schema).parse('劍眉')

# 使用搜尋物件的搜尋方法來完成檢索

# search(query, limit=none)

# limit限制搜尋結果的條數,預設為10個,指定為none則顯示所有

results = searcher.search(query, limit=none)

for res in results:

print(res['title'])

老規矩,執行看下結果

開啟這個**,搜尋一下

把『』劍眉『』換成『遊戲』

有點多,隨便找幾個看看

全文檢索python

全文檢索 全文檢索不同於特定欄位的模糊查詢,使用全文檢索的效率更高,並且能夠對於中文進行分詞處理 jieba 一款免費的中文分詞包,如果覺得不好用可以使用一些收費產品 django中的全文檢索安裝配置 1.依賴包安裝 pip install django haystack pip install w...

發布全文檢索類庫外包

因時間緊張,現將全文檢索類庫外包,需求如下,有意者可詳細溝通。全文檢索類庫需求說明 作業系統環境 windows 2003 iis 6 ide開發環境 vs 2008 c 3.5 lucene.net 或者其他 技術要求 符合高併發需求,可滿足同時300以上個搜尋的請求 記憶體,io,通訊傳輸量 讀...

全文檢索的原理

參考 全文檢索歸結為兩個過程 1 建立索引2 索引搜尋 先關注幾個問題 如何建立索引?索引中存放的是神馬東西?如果通過索引進行搜尋?然後關注幾個重要的概念 反向索引 倒排表 倒排索引 倒排索引檔案 停詞權重 反向索引 儲存這種對映資訊的索引稱為反向索引 solr lucene採用反向索引 就是從關鍵...