2012-01-09 1 views
1

Я изучаю интеграцию elasticsearch в приложение, управляемое пружиной-jpa.
Для этого проект elasticsearch-osem кажется поразительным.
Я не понимаю, какова роль аннотации @Indexable(indexName = "someIndex"), которая показана в примере из введения к проекту.
Что меня смущает тот факт, что в том же примере он говорит:Какова роль @Indexable в elasticsearch-osem?

Затем вы можете написать объекты для клиента ElasticSearch:.
node.client() prepareIndex («твиттер», «твит ..», "1") setSource (context.write (твит)) выполнить() actionGet().

Где «твиттер» - это имя-индекс.

Я думаю, что мой вопрос в том, почему нужно также определять @Indexable на поле и почему они должны определять имя-индекс?

Благодаря

+0

Вы с какой-либо удачи с этим проектом? Он работает на вас? Я хотел бы поговорить с вами об этом, на gearondATsbcglobal.net – Dennis

+0

@ Dennis Я закончил работу без проекта. В основном потому, что я понял, что разрыв между реляционными документами не является чем-то, что он может решить для меня, но я должен решить его сам. – Ittai

ответ

1

После просмотра исходного кода я был в состоянии видеть, что @Indexable используется либо псевдонимы питания к полям индексированных свойств в индексированных субъектах или индексировать свойств в неиндексированных объектах. Вы можете увидеть это в методе getIndexableProperties в AttributeSourceImpl типа, где он говорит в комментарии:

Searchable свойства класса неявно Indexable

2

С @Indexable вы говорите, какие поля должны быть включены в индекс. 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

Смежные вопросы