2012-01-09 10 views
1

私はspringsepa駆動アプリケーションにelasticsearchを統合する方法を検討しています。
この目的のために、elasticsearch-osemプロジェクトはすばらしいフィット感があります。
私が理解できないことは、プロジェクトの紹介からの例で示されている@Indexable(indexName = "someIndex")注釈の役割は何かです。
何私を混乱することは、同じ例では、それは言っているという事実である:elasticsearch-osemで@Indexableの役割は何ですか?

次にあなたがElasticSearchクライアントにオブジェクトを書き込むことができます:。
node.client()prepareIndex(「さえずり」、「つぶやき"、" 1 ")。setSource(context.write(tweet))。execute()。actionGet();

ここで、「twitter」はインデックス名です。

フィールドに@Indexableを定義する必要があるのはなぜですか、なぜインデックス名を定義する必要があるのでしょうか?

おかげ@Indexable

+0

あなたはこのプロジェクトで任意の運を持っている暗黙的にインデックスに登録されていますか?それはあなたのために働いていますか? gearondATsbcglobal.net – Dennis

+0

@Dennis私はプロジェクトなしで仕事を終えました。主に、関係文書間のギャップは私のために解決できるものではないが、私はそれを自分で解決しなければならないということを認識したからです。 – Ittai

答えて

1

ソースコードを見た後、私は@Indexableは、インデックス作成を許可するインデックス付きエンティティまたはにインデックス付きプロパティのフィールドへの供給エイリアスのいずれかに使用されていることを見ることができましたインデックスされていないエンティティのプロパティあなたはそれがコメントで言うAttributeSourceImplタイプでgetIndexableProperties方法でこれを見ることができます :

検索可能なクラスのプロパティは

2

あなたはフィールドがインデックスに含まれるべきであると言います。 indexNameは、インデックス内のフィールドの名前です。これは、他の呼び出しで設定した索引の名前ではありません。

のJavadocから

/** 
* The name of the field that will be stored in the index. Defaults to the property/field name. 
*/ 
    String indexName() default ""; 
+0

こんにちはynka、あなたの答えをありがとう。だから、それはフィールドのエイリアスを許可する唯一のメカニズムだと思いますか?これらのフィールドのインデックスを後で照会することができるでしょうか? – Ittai

+0

エイリアスを許可するだけではないと思います。私はあなたが '@Indexable'を使わないと、インデックスの検索中にフィールドを使うことができなくなると思います。しかし、私は職場でluceneを使用しています) – ynka

+0

(または使用することはできますが、それは非常に遅くなります) – ynka

関連する問題