Как сконфигурировать анализ с аннотацией @Field в spring-data -asticsearch с нормами: enabled: false

Я попробовал вышеуказанное решение, но я счел его непригодным для больших объемов данных. Затем я обнаружил функцию потока:

MongoClient.connect("...", function(err, db){
    var c = db.collection('yourCollection');
    var s = c.find({/* your query */}).stream();
    s.on('data', function(doc){
        c.update({_id: doc._id}, {$set: {name : doc.firstName + ' ' + doc.lastName}}, function(err, result) { /* result == true? */} }
    });
    s.on('end', function(){
        // stream can end before all your updates do if you have a lot
    })
})
0
задан Karunaker Reddy V 16 January 2019 в 06:08
поделиться

1 ответ

Поскольку нет способа добавить атрибут enable-false норм как часть аннотаций @field в сущности java, мы можем добавить все сопоставления (все необходимые типы с атрибутами в качестве сопоставлений) в файл mappings.json и ссылаться на этот файл в сущности. файл. Как показано ниже

@Document(indexName = "jobindex")
@Setting(settingPath = "/config/elasticsearch-settings.json")
@Mapping(mappingPath = "/config/mappings.json") //THIS ONE TO ADD
public class JobIndex implements Serializable {
}

и mappings.json выглядят как

"mappings": {
    "_doc": { 
      "properties": {
        "title": {
          "type": "text",
          "norms": { "enabled": false } 
        }
      }
    }
  }

ПРИМЕЧАНИЕ: когда вы добавляете в атрибут mappings.json определенные атрибуты, которые недоступны в аннотациях java @Field, лучше добавлять все полевые аннотации в файл json, а не в java @ полевые аннотации. Таким образом, вывод заключается в том, что сущность java должна быть без аннотаций полей, и все сопоставления должны быть в файле mappings.json, и этот файл должен быть указан в заголовке сущности, как упомянуто в первом блоке кода этого ответа.

0
ответ дан Karunaker Reddy V 16 January 2019 в 06:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: