@Indexable在elasticsearch-osem中的作用是什么?

时间:2012-01-09 09:44:13

标签: java elasticsearch

我正在考虑将elasticsearch集成到我的spring-jpa驱动的应用程序中 为此,elasticsearch-osem项目似乎非常合适 我无法理解的是@Indexable(indexName = "someIndex")注释的作用是什么,该注释在项目介绍的示例中显示。
令我困惑的是,在同一个例子中它说:

  

然后您可以将对象写入ElasticSearch客户端:
  node.client()。prepareIndex(“twitter”,“tweet”,“1”)。setSource(context.write(tweet))。execute()。actionGet();

其中“twitter”是索引名称。

我认为我的问题是为什么还要在字段上定义@Indexable,为什么要定义索引名?

由于

2 个答案:

答案 0 :(得分: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 "";

答案 1 :(得分:1)

在查看源代码之后,我能够看到@Indexable用于为索引实体中的索引属性字段提供别名,以允许索引未索引的属性实体。 您可以在getIndexableProperties类型的AttributeSourceImpl方法中看到这一点,并在评论中说明这一点:

  

可搜索的类属性是隐式可索引的