Какова роль @Indexable вasticsearch-osem? - PullRequest
1 голос
/ 09 января 2012

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

Затем вы можете записать объекты в клиент ElasticSearch:
node.client (). prepareIndex ( "twitter" , "tweet", "1"). setSource (context.write (tweet)). execute (). actionGet ();

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

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

Спасибо

Ответы [ 2 ]

2 голосов
/ 09 января 2012

С помощью @Indexable вы говорите, какие поля должны быть включены в индекс. indexName - это имя поля в индексе. Это не имя индекса, который вы задали другим вызовом.

От Javadoc:

/**
* The name of the field that will be stored in the index. Defaults to the property/field name.
*/
    String indexName() default "";
1 голос
/ 10 января 2012

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

Свойства класса с возможностью поиска неявно индексируются

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...