2012-08-09 109 views
3

在用簡單的模式創建了一個帶有索引的150萬記錄的whoosh索引後,我在15秒內接近1000個搜索結果。slow whoosh搜索

schema = Schema(tax_id=STORED, name=TEXT(stored=True)) 

MAIN * .seg文件的大小約爲190 Mb。

我正在尋找的方法是如下

ix=open_dir("index") 
    with ix.searcher() as searcher: 
     query = QueryParser("name", ix.schema).parse(u'putrefaciens') 
     results = searcher.search(query) 

我想知道如果這樣的表現,我們可以做得更快全文給定索引大小嗖搜索預期的線條上。

+0

由於Whoosh每次都會改變(爲了更好),您正在使用哪個版本?即使你的索引中有很多文檔,這是不可接受的表現,即使對於Whoosh也是如此。這不應該超過3(任意)秒。 – 2013-01-31 12:37:20

回答

0

不知道它是否對您的應用程序有幫助,但我只是想指出TEXT字段比ID字段更復雜。

在我的應用程序中,我有一個「名稱」文本字段,用於「已處理」索引/搜索。所以你可以輸入一些單詞,如果它在名稱中就會被發現。

我也有一個「name_exact」ID字段,如果我只是想按照「原樣」和精確索引/查找。

如果後者足夠用於您的應用程序,您可以嘗試使用ID字段進行性能測試。

正如Steve K已經指出的那樣,使用最近的whoosh(甚至是回購技巧)也可能有幫助。