Я использую Solr для поиска моего содержимого данных веб-страницы. Мой solr-indexer создаст несколько полей и соответствующие значения. Однако некоторые из этих полей я хочу обновлять чаще, например, количество кликов на этой странице. Эти поля не обязательно должны быть индексируемыми, и мне не нужно выполнять поиск по этим значениям полей. Однако я хочу их получить и часто обновлять. Я новичок в solr, поэтому более описательный ответ, возможно, с некоторым примером/кодом поможет мне лучше.Обновляемые поля In Solr
ответ
Если вы находитесь на Solr 4+, да, вы можете нажать Partial Update на индекс Solr.
Для частичного обновления все поля в вашем schema.xml необходимо сохранить.
Это как ваши поля раздел должен выглядеть следующим образом:
<fields>
<field name="id" type="string" indexed="true" stored="true" required="true" />
<field name="title" type="text_general" indexed="true" stored="true"/>
<field name="description" type="text_general" indexed="true" stored="true" />
<field name="body" type="text_general" indexed="true" stored="true"/>
<field name="clicks" type="integer" indexed="true" stored="true" />
</fields>
Теперь, когда вы отправляете частичное обновление для одной из областей, например: в вашем случае «кликов»; в фоновом режиме Solr пойдет и выберет значения для всех других полей для этого документа, такие как заголовок, описание, тело, удалить старый документ и выведет новый обновленный документ в индекс Solr.
localhost:8080/solr/update?commit=true' -H 'Content-type:application/json' -d '[{"id":"1","clicks":{"set":100}}]
Вот хорошая документация на частичное обновление: http://solr.pl/en/2012/07/09/solr-4-0-partial-documents-update/
эй спасибо, можете ли вы предоставить Java-код для solrJ для этого? – Apurv
Привет, Apurv, я нашел это обсуждение, которое могло бы вам помочь. http://stackoverflow.com/questions/12183798/solrj-api-for-partial-document-update Я не парень JAVA, я использую Solr с PHP. –
Пример SOLR- частичный код обновления:
Предпосылки: Поля должны быть сохранены.
Вам необходимо настроить путь обновления журнала под непосредственным обработчиком обновлений
<updateHandler class="solr.DirectUpdateHandler2">
<!-- Enables a transaction log, used for real-time get, durability, and
and solr cloud replica recovery. The log can grow as big as
uncommitted changes to the index, so use of a hard autoCommit
is recommended (see below).
"dir" - the target directory for transaction logs, defaults to the
solr data directory. -->
<updateLog>
<str name="dir">${solr.ulog.dir:}</str>
</updateLog>
</updateHandler>
Код:
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import org.apache.solr.client.solrj.SolrServer;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.ConcurrentUpdateSolrServer;
import org.apache.solr.client.solrj.impl.HttpSolrServer;
import org.apache.solr.common.SolrInputDocument;
public class PartialUpdate {
public static void main(String args[]) throws SolrServerException,
IOException {
SolrServer server = new HttpSolrServer("http://localhost:8080/solr");
SolrInputDocument doc = new SolrInputDocument();
Map<String, String> partialUpdate = new HashMap<String, String>();
// set - to set a field.
// add - to add to a multi-valued field.
// inc - to increment a field.
partialUpdate.put("set", "peter"); // value that need to be set
doc.addField("id", "122344545"); // unique id
doc.addField("fname", partialUpdate); // value of field fname corresponding to id 122344545 will be set to 'peter'
server.add(doc);
}
}
- 1. Поля, не обновляемые в массиве
- 2. setMissingLast in PECL Solr
- 3. CakePHP Поля, не обновляемые на странице редактирования
- 4. debug solr response in eclipse
- 5. qf in solr не дает никакого специального поля
- 6. DynamicFields in Solr
- 7. Drupal content in Solr
- 8. Fuzzy Search in Solr
- 9. Solr in tomcat 7
- 10. UniqueKey in SOLR
- 11. Solr in production
- 12. Boosting in solr search
- 13. OR search in solr
- 14. значения поля поля solr, по-видимому, генерируются solr
- 15. SOLR - отсутствуют обязательные поля
- 16. Глубина поля Solr
- 17. Solr «Неопределенный текст поля»
- 18. Подсчет многозначного поля solr
- 19. SOLR многозначного поля
- 20. Change Solr Тип поля
- 21. Формат поля даты Solr
- 22. Динамически обновляемые запросы?
- 23. Solr bean поля не работают
- 24. определения уникального поля в Solr
- 25. Обновление поля Solr на основе другого поля
- 26. Solr - Как загрузить полевые поля многозначного поля?
- 27. Apache Solr - ID поля и поля префиксы
- 28. Программно обновляемые ярлыки изображений
- 29. Solr IS IN поиск возможно?
- 30. Trending Words in Solr 4.0
эй спасибо, вы можете предоставить solrJ стороне клиента код Java для этого? – Apurv