Как удалить все данные из solr и hbase - PullRequest
89 голосов
/ 11 октября 2011

Как мне удалить все данные из solr по команде?Мы используем solr с lily и hbase.

Как мне удалить данные из hbase и solr?

http://lucene.apache.org/solr/4_10_0/tutorial.html#Deleting+Data

Ответы [ 16 ]

1 голос
/ 16 февраля 2016

Приведенные выше примеры скручивания для меня потерпели неудачу, когда я запустил их с терминала cygwin.Были такие ошибки, когда я запускал пример скрипта.

curl http://192.168.2.20:7773/solr/CORE1/update --data '<delete><query>*:*</query></delete>' -H 'Content-type:text/xml; charset=utf-8'
<?xml version="1.0" encoding="UTF-8"?>
<response>
<lst name="responseHeader"><int name="status">0</int><int name="QTime">1</int></lst>
</response>
<!-- 
     It looks like it deleted stuff, but it did not go away
     maybe because the committing call failed like so 
-->
curl http://192.168.1.2:7773/solr/CORE1/update --data-binary '' -H 'Content-type:text/xml; charset=utf-8'
<?xml version="1.0" encoding="UTF-8"?>
<response>
<lst name="responseHeader"><int name="status">400</int><int name="QTime">2</int></lst><lst name="error"><str name="msg">Unexpected EOF in prolog
 at [row,col {unknown-source}]: [1,0]</str><int name="code">400</int></lst>
</response>

Мне нужно было использовать цикл удаления в именах ядер, чтобы уничтожить их все в проекте.

Этот запрос ниже работал для меня в терминальном скрипте Cygwin.

curl http://192.168.1.2:7773/hpi/CORE1/update?stream.body=<delete><query>*:*</query></delete>&commit=true
<?xml version="1.0" encoding="UTF-8"?>
<response>
<lst name="responseHeader"><int name="status">0</int><int name="QTime">1</int></lst>
</response>

Эта строка убрала данные, и изменения сохранились.

1 голос
/ 12 марта 2015

Если вам нужно очистить все данные, может быть быстрее восстановить коллекцию, например,

solrctl --zk localhost:2181/solr collection --delete <collectionName>
solrctl --zk localhost:2181/solr collection --create <collectionName> -s 1
0 голосов
/ 16 мая 2018

Solr Я не уверен, но вы можете удалить все данные из hbase, используя команду truncate, как показано ниже:

truncate 'table_name'

Он удалит все ключи строк из таблицы hbase.

0 голосов
/ 24 мая 2016

Если вы используете Cloudera 5.x, здесь в этой документации упоминается, что Lily также поддерживает обновления и удаления в реальном времени.

Настройка службы индексатора Lily HBase NRT для использования с ClouderaПоиск

Поскольку HBase применяет вставки, обновления и удаления к ячейкам таблицы HBase, индексатор поддерживает согласованность Solr с содержимым таблицы HBase, используя стандартную репликацию HBase.

Не уверен, что truncate 'hTable' также поддерживается в том же.

В противном случае вы создаете Триггер или Службу, чтобы очистить ваши данные как от Solr, так и от HBase для определенного события или чего-либо еще.

0 голосов
/ 15 июня 2015

Я сделал закладку JavaScript, которая добавляет ссылку для удаления в Solr Admin UI

javascript: (function() {
    var str, $a, new_href, href, upd_str = 'update?stream.body=<delete><query>*:*</query></delete>&commit=true';
    $a = $('#result a#url');
    href = $a.attr('href');
    str = href.match('.+solr\/.+\/(.*)')[1];
    new_href = href.replace(str, upd_str);
    $('#result').prepend('<a id="url_upd" class="address-bar" href="' + new_href + '"><strong>DELETE ALL</strong>   ' + new_href + '</a>');
})();

enter image description here

0 голосов
/ 15 апреля 2013

При очистке индекса Solr вы также должны выполнить коммит и оптимизировать после выполнения запроса delete-all. Требуются полные шаги (скручивание - все, что вам нужно): http://www.alphadevx.com/a/365-Clearing-a-Solr-search-index

...