10

Google App Engine で全文検索を行う必要があります。プロジェクトWhooshを見つけました。App Engine 開発環境を使用している限り、非常にうまく機能します... アプリケーションを App Engine にアップロードすると、次の TraceBack が表示されます。私のテストでは、このプロジェクトで提供されているサンプル アプリケーションを使用しています。私が間違っていることについて何か考えはありますか?

<type 'exceptions.ImportError'>: cannot import name loads
Traceback (most recent call last):
  File "/base/data/home/apps/myapp/1.334374478538362709/hello.py", line 6, in <module>
    from whoosh import store
  File "/base/data/home/apps/myapp/1.334374478538362709/whoosh/__init__.py", line 17, in <module>
    from whoosh.index import open_dir, create_in
  File "/base/data/home/apps/myapp/1.334374478538362709/whoosh/index.py", line 31, in <module>
    from whoosh import fields, store
  File "/base/data/home/apps/myapp/1.334374478538362709/whoosh/store.py", line 27, in <module>
    from whoosh import tables
  File "/base/data/home/apps/myapp/1.334374478538362709/whoosh/tables.py", line 43, in <module>
    from marshal import loads

これが私のPythonファイルにあるインポートです。

# Whoosh ----------------------------------------------------------------------
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..', 'utils')))
from whoosh.fields import Schema, STORED, ID, KEYWORD, TEXT
from whoosh.index import getdatastoreindex
from whoosh.qparser import QueryParser, MultifieldParser

よろしくお願いします。

4

4 に答える 4

7

Google App Engine での作業を特に対象とした Whoosh バージョンであるWhoosh-Appengineをダウンロードして使用することで、問題を解決できる可能性があります。

于 2009-06-22T22:38:53.703 に答える
4

これは、全文検索の実装に関する公式の例です: http://code.google.com/p/guestbook-example-appengine-full-text-search/

私はそれを実装する必要があるので、現在それを読んでいます。おそらく他の人にも役立つでしょう。

于 2010-07-03T11:52:52.280 に答える
3

マーシャル モジュールは App Engine ではサポートされていません。そこにありますが、空です。その元帥は、dev で正常に機能しています。環境の問題として登録されています。

ドキュメントを参照してください。

次のようにして、マーシャル モジュールにモンキー パッチを適用できます。他のインポートを行う前に、次のコードを挿入します。

import pickle
import marshal
marshal.loads = pickle.loads
marshal.dumps = pickle.dumps # I assume it needs dumps also

私はこれを試したことがないので、うまくいくかどうかはまったくわかりません!また、ピクルのロード/ダンプはマーシャリングのロード/ダンプよりも遅いことに注意してください。

于 2009-06-22T19:52:39.373 に答える
1

コメント #71 を参照してください: http://code.google.com/p/googleappengine/issues/detail?id=217&q=Whoosh&colspec=ID%20Type%20Status%20Priority%20Stars%20Owner%20Summary%20Log%20Component#c71 :

それは私のツールではありませんが、次のように書かれています:

http://whoosh.ca/を移植して全文検索 API を作成したので、AppEngine で利用できます。(データストアにインデックスを格納します)

http://github.com/tallstreet/Whoosh-AppEngine/tree/masterからダウンロードできます。

次のようなすべての Whooshes 機能が含まれています。

1 Pythonic API。2 フィールド化されたインデックス作成と検索。3 高速なインデックス作成と検索 4 プラグイン可能なスコアリング アルゴリズム (BM25F を含む)、テキスト分析、ストレージ、投稿形式など。 5 pyparsing によって解析される強力なクエリ言語。6 Pure Python スペルチェッカー

于 2010-12-22T03:49:58.300 に答える