2016-10-27 2 views

ответ

2

Для этого вам нужно будет установить все поля как сохраненные, так как вы можете использовать поддержку Solr для Updating Parts of Documents.

Вы можете использовать команду inc для увеличения поля в документе:

{ 
    "id":"mydoc", 
    "popularity":{"inc":20} 
} 

Поскольку внутренне обновление является «получить документ, изменить значение, переиндексации документ», все поля должны быть установлены как хранить , Если вы используете схему schemaless по умолчанию .. в 6.2, все поля сохраняются по умолчанию. Если вы используете настраиваемую схему или вручную изменили поля через API-интерфейс Schema, вам нужно убедиться, что все они настроены как сохраненные.

Update:

Для SolrJ, что-то, как это должно работать (from Yonik's post):

SolrInputDocument doc = new SolrInputDocument(); 

doc.addField("id", "test"); 
Map<String, String> cmd2 = new HashMap<>(); 
cmd1.put("inc", "20"); 
doc.addField("field1", cmd1); 
client.add(collection, doc); 
+0

Действительно спасибо за ваш ответ, я могу что-то упустить. Я хочу использовать SolrJ и не знаю, какой класс/метод может достичь такого же результата. –

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