7

現時点では、コンパスがこの作業を処理できることを知っています。しかし、コンパスを使用したインデックス作成はかなり高価に見えます。より軽い代替品はありますか?

4

5 に答える 5

6

正直なところ、インデックス作成に関して Lucene が Compass よりも軽くなるかどうかはわかりません (なぜなら、Compass はそのために Lucene を使用しないのでしょうか?)。

とにかく、あなたが代替品を求めたので、GAELuceneがあります。その発表を以下に引用します。

「 Google アプリ エンジンで Lucene を実行できますか? 」という議論に啓発されて、Google データストア ベースの Lucene コンポーネントである GAELucene を実装しました。これは、Google アプリ エンジンで検索アプリケーションを実行するのに役立ちます。

GAELucene の主なクラズは次のとおりです。

  • GAEDirectory - Google データストアに基づく読み取り専用ディレクトリ。
  • GAEFile - インデックス ファイルを表し、ファイルのバイト コンテンツは複数の GAEFileContent に分割されます。
  • GAEFileContent - インデックス ファイルのセグメントを表します。
  • GAECategory - さまざまなインデックスの識別子。
  • GAEIndexInput - メモリ常駐 IndexInput? RAMInputStream のような実装。
  • GAEIndexReader - IndexReader のラッパー? GAEIndexReaderPool にキャッシュされたもの
  • GAEIndexReaderPool - GAEIndexReader のプール

次のコード スニペットは、GAELucene do 検索の使用方法を示しています。

Query queryObject = parserQuery(request);
GAEIndexReaderPool readerPool = GAEIndexReaderPool.getInstance();
GAEIndexReader indexReader = readerPool.borrowReader(INDEX_CATEGORY_DEMO);
IndexSearcher searcher = newIndexSearcher(indexReader);
Hits hits = searcher.search(queryObject);
readerPool.returnReader(indexReader);

nabble に関する議論全体を読むことを強くお勧めします。非常に有益です。

Compass に関しては、Shay Banon が App Engine で Compass を使用する方法を詳述したブログ エントリを次の URL に書きました: http://www.kimchy.org/searchable-google-appengine-with-compass/

于 2010-01-03T20:04:56.710 に答える
4

Apache Luceneは、Java での全文索引作成のデファクト チョイスです。Compass Coreには、「( Jdbcを使用して) データベース内にインデックスを格納するための Lucene Directory の実装。Compass コード ベースから分離されており、純粋な Lucene アプリケーションで使用できます。」が含まれているようです。プラス他の多くのもの。Lucence コンポーネントだけを分離して、いくつかのライブラリを取り除き、より軽量にすることもできます。それか、コンパスを完全に捨てて、純粋な飾り気のないルセンを使用してください。

于 2010-01-03T18:46:44.423 に答える
1

Google App Engine の場合、私が見た唯一のインデックス作成ライブラリはappengine-searchで、このページで使用方法が説明されています。私はそれを試していません。

私はLucene (Compass のベース) を使用しましたが、比較的低コストでうまく機能することがわかりました。インデックス作成は、アプリに適した時間にスケジュールできるタスクです。

この SO スレッドでは、Xapianminionなど、いくつかの代替インデックス プロジェクトについて言及されています。ただし、Lucene は私が必要とするすべてのことを非常にうまく行ったので、これらのいずれもチェックしていません。

于 2010-01-03T18:57:57.140 に答える
0

Lucene を GAE で実行したい場合は、LuGAEneも参照してください。これは、GAE 用の Lucene のディレクトリの実装です。

使用方法は実にシンプルで、Lucene の標準ディレクトリの 1 つを次のように置き換えるだけです。GaeDirectory

Directory directory = new GaeDirectory("MyIndex");
Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_43);
IndexWriterConfig config = new IndexWriterConfig(Version.LUCENE_43, analyzer);
IndexWriter writer = new IndexWriter(directory, config);
...

gaeluceneは「メンテナンス モード」にあるようで (2009 年 9 月以降はコミットされていません)、アプリケーションでObjectifyバージョン 4を使用している場合、 lucene-appengineは (まだ) 機能しません。

免責事項: 私は LuGAEne の作成者です。

于 2013-06-15T07:23:56.273 に答える