【问题标题】:grails elasticsearch only indexed one instance out of manygrails elasticsearch 只索引了许多实例中的一个
【发布时间】:2016-09-21 16:31:58
【问题描述】:

我第一次使用 elasticsearch grails 插件,当我设置配置 bulkIndexOnStartup = true 时,它​​正确索引了几个域类,但对于其他几个域类,它似乎只索引了许多实例中的一个,尽管我在数据库中看到了 99 个不同的实例。

当我试图通过调用来专门索引实例时

elasticSearchService.index( anInstance )

它只会删除旧条目并添加一个新条目,因此最后elasticsearch中仍然只有一个实例。某处是否有“indexAllDistinct”设置?它如何决定添加新条目或替换现有条目?

我还注意到,在正确索引的实例上,_id 字段都有数值,但在索引不正确的实例上,_id 字段为“null”。

编辑:我发现索引错误的类将“id”映射名称设置为不同的字段。我如何告诉 elasticsearch 这些类的“id”有不同的名称?

【问题讨论】:

    标签: grails elasticsearch


    【解决方案1】:

    对于将默认“id”映射到另一个名称的 grails 域类,我必须为 elasticsearch 添加一个临时“id”。例如:

    class LogEntry {
      Integer logId // replaces default id
      ...
    
      static mapping = {
        id name: 'logId', column: 'LOG_ID'
        ...
      }
    
      static transients = ['id'] // for elasticsearch
      def getId(){
        return logId
      }
    }
    

    【讨论】:

      猜你喜欢
      • 2014-08-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-09
      • 2013-11-19
      • 2018-03-13
      相关资源
      最近更新 更多