Удалить документы из индекса Solr - индекс не трогается
Я пытаюсь понять, почему мой индекс Solr даже не затрагивается, когда я удаляю весь свой индекс!
До сих пор я пробовал запрос напрямую, чтобы решить:
curl 'http://localhost:8080/solr/update?stream.body=<delete><query>*:*</query></delete>&commit=true'
Я также попробовал pysolr:
In [242]: from pysolr import Solr
In [243]: conn = Solr('http://localhost:8080/solr/')
In [244]: conn.delete(q='*:*')
Вывод этих двух вышеприведенных команд одинаков в логе catalina.
Независимо от того, как я это делаю (даже пытался из админ-панели), индекс все равно показывает одинаковое количество документов:
Num Docs:
323
Max Doc:
323
Version:
52
Segment Count:
1
Сначала я подумал, что это проблема с разрешением моей папки solr / data, но это не так. Я закомментировал свой кеш в моем файле solrconfig.xml, результат был таким же.
Было бы здорово, если бы у кого-нибудь были советы!
Позже отредактируйте:
Каждый раз, когда я запускаю вышеупомянутые команды, изменяются только файлы, которые имеют более позднюю временную метку (только из spellchecker dir) - вы также можете видеть, что владелец пользователя изменяется с www-data на root - когда я вручную запускаю эти команды
data/index:
total 2112
-rw-r--r-- 1 www-data root 1268535 2012-08-10 13:41 _f.fdt
-rw-r--r-- 1 www-data root 2618 2012-08-10 13:41 _f.fdx
-rw-r--r-- 1 www-data root 1135 2012-08-10 13:41 _f.fnm
-rw-r--r-- 1 www-data root 201513 2012-08-10 13:41 _f_Lucene40_0.frq
-rw-r--r-- 1 www-data root 207400 2012-08-10 13:41 _f_Lucene40_0.prx
-rw-r--r-- 1 www-data root 419705 2012-08-10 13:41 _f_Lucene40_0.tim
-rw-r--r-- 1 www-data root 11199 2012-08-10 13:41 _f_Lucene40_0.tip
-rw-r--r-- 1 www-data root 245 2012-08-10 13:41 _f_nrm.cfe
-rw-r--r-- 1 www-data root 2751 2012-08-10 13:41 _f_nrm.cfs
-rw-r--r-- 1 www-data root 382 2012-08-10 13:41 _f.si
-rw-r--r-- 1 www-data root 20 2012-08-10 13:41 segments.gen
-rw-r--r-- 1 www-data root 98 2012-08-10 13:41 segments_h
-rw-r--r-- 1 root root 0 2012-08-10 13:55 write.lock
data/spellchecker:
total 792
-rw-r--r-- 1 root root 129251 2012-08-10 14:16 _q.fdt
-rw-r--r-- 1 root root 84282 2012-08-10 14:16 _q.fdx
-rw-r--r-- 1 root root 1119 2012-08-10 14:16 _q.fnm
-rw-r--r-- 1 root root 288855 2012-08-10 14:16 _q_Lucene40_0.frq
-rw-r--r-- 1 root root 257208 2012-08-10 14:16 _q_Lucene40_0.tim
-rw-r--r-- 1 root root 9355 2012-08-10 14:16 _q_Lucene40_0.tip
-rw-r--r-- 1 root root 306 2012-08-10 14:16 _q.si
-rw-r--r-- 1 root root 69 2012-08-10 14:16 segments_1p
-rw-r--r-- 1 root root 20 2012-08-10 14:16 segments.gen
data/tlog:
total 444
-rw-r--r-- 1 www-data root 363169 2012-08-10 12:11 tlog.0000000000000000019
-rw-r--r-- 1 www-data root 79280 2012-08-10 12:11 tlog.0000000000000000020
Журнал Каталины усечен, conn.delete (q = ':') запущен - вот что вошло в catalina.log
Aug 10, 2012 3:17:57 PM org.apache.solr.update.DirectUpdateHandler2 commit
INFO: start commit{flags=0,version=0,optimize=false,openSearcher=true,waitSearcher=true,expungeDeletes=false,softCommit=false}
Aug 10, 2012 3:17:57 PM org.apache.solr.search.SolrIndexSearcher <init>
INFO: Opening Searcher@1d4eeb5 main
Aug 10, 2012 3:17:57 PM org.apache.solr.core.QuerySenderListener newSearcher
INFO: QuerySenderListener sending requests to Searcher@1d4eeb5 main{StandardDirectoryReader(segments_h:52 _f(4.0):C323)}
Aug 10, 2012 3:17:57 PM org.apache.solr.core.QuerySenderListener newSearcher
INFO: QuerySenderListener done.
Aug 10, 2012 3:17:57 PM org.apache.solr.handler.component.SpellCheckComponent$SpellCheckerListener buildSpellIndex
INFO: Building spell index for spell checker: default
Aug 10, 2012 3:17:57 PM org.apache.solr.update.DirectUpdateHandler2 commit
INFO: end_commit_flush
Aug 10, 2012 3:18:02 PM org.apache.solr.core.SolrCore registerSearcher
INFO: [collection1] Registered new searcher Searcher@1d4eeb5 main{StandardDirectoryReader(segments_h:52 _f(4.0):C323)}
Aug 10, 2012 3:18:02 PM org.apache.solr.update.processor.LogUpdateProcessor finish
INFO: [collection1] webapp=/solr path=/update/ params={commit=true} {deleteByQuery=*:*,commit=} 0 5608
позже позже отредактируйте:
Я пытался удалить по идентификатору, и это работает! Так что по какой-то причине удаление
q=*:*
не удается...
3 ответа
Я обнаружил, что проблема была в моем schema.xml
Я переписал его и теперь работает как шарм!
Дайте этому выстрел в завиток, работал для меня в прошлом:
curl http://localhost:8080/solr/update/?commit=true -H "Content-Type: text/xml" --data-binary '<delete><query>*:*</query></delete>';
Надеюсь, поможет.
Я думаю, вам нужно изменить порядок параметров commit и stream.body. Из последней записи в вашем журнале каталины видно, что значение фиксации не включено в запрос на удаление.
попробуй это:
curl 'http://localhost:8080/solr/update?commit=true&stream.body=<delete><query>*:*</query></delete>'