3

シンプルなスキーマで whoosh インデックスを作成し、150 万件のレコードにインデックスを付けた後、15 秒で 1000 件近くの検索結果を取得しています。

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)

このパフォーマンスが、インデックス サイズを考慮して、whoosh を使用してより高速に全文検索を行うことができるかどうかの期待どおりかどうか疑問に思っています。

4

1 に答える 1

0

アプリケーションで役立つかどうかはわかりませんが、TEXT フィールドは ID フィールドよりも複雑な処理を行っていることに注意してください。

私のwhooshのアプリケーションには、「処理された」インデックス作成/検索に使用する「名前」TEXTフィールドがあります。そのため、単語を入力するだけで、それが名前に含まれている場合に見つかります。

「そのまま」正確なインデックス作成/ルックアップを行いたい場合は、「name_exact」ID フィールドもあります。

アプリケーションに後者で十分な場合は、ID フィールドでパフォーマンスを試すことができます。

Steve K がすでに指摘したように、最近のシューッという音 (またはレポのヒント) を使用することも役立つ場合があります。

于 2013-02-24T14:45:00.990 に答える