solr
명령으로 모든 데이터를 삭제하려면 어떻게합니까 ? solr
와 함께 사용 lily
하고 hbase
있습니다.
hbase와 solr 모두에서 데이터를 삭제하려면 어떻게해야합니까?
http://lucene.apache.org/solr/4_10_0/tutorial.html#Deleting+Data
답변
Solr 인덱스를 정리하려면-
http URL을 실행할 수 있습니다-
http://host:port/solr/[core name]/update?stream.body=<delete><query>*:*</query></delete>&commit=true
( [core name]
삭제하려는 코어의 이름으로 바꿉니다). 또는 데이터 xml 데이터를 게시하는 경우 다음을 사용하십시오.
<delete><query>*:*</query></delete>
commit=true
변경 사항을 커밋하는 데 사용하십시오.
그래도 hbase 데이터를 지우는 데는 많은 생각이 없습니다.
답변
이 요청을 사용하여 모든 레코드를 삭제했지만 때로는이를 커밋해야합니다.
이를 &commit=true
위해 요청에 추가 하십시오.
http://host:port/solr/core/update?stream.body=<delete><query>*:*</query></delete>&commit=true
답변
다음 명령을 사용하여 삭제할 수 있습니다. 쿼리 별 삭제 명령에서 “모든 문서 일치”쿼리를 사용합니다.
'<delete><query>*:*</query></delete>
또한 삭제를 실행 한 후 커밋해야하므로 인덱스를 비우려면 다음 두 명령을 실행하십시오.
curl http://localhost:8983/solr/update --data '<delete><query>*:*</query></delete>' -H 'Content-type:text/xml; charset=utf-8'
curl http://localhost:8983/solr/update --data '<commit/>' -H 'Content-type:text/xml; charset=utf-8'
또 다른 전략은 브라우저에 두 개의 북마크를 추가하는 것입니다.
http://localhost:8983/solr/update?stream.body=<delete><query>*:*</query></delete>
http://localhost:8983/solr/update?stream.body=<commit/>
SOLR의 소스 문서 :
https://wiki.apache.org/solr/FAQ#How_can_I_delete_all_documents_from_my_index.3F
답변
json 데이터 게시 (예 : curl 사용)
curl -X POST -H 'Content-Type: application/json' \
'http://<host>:<port>/solr/<core>/update?commit=true' \
-d '{ "delete": {"query":"*:*"} }'
답변
SolrJ를 통해 Solr의 모든 데이터를 삭제하려면 다음과 같이하십시오.
public static void deleteAllSolrData() {
HttpSolrServer solr = new HttpSolrServer("http://localhost:8080/solr/core/");
try {
solr.deleteByQuery("*:*");
} catch (SolrServerException e) {
throw new RuntimeException("Failed to delete data in Solr. "
+ e.getMessage(), e);
} catch (IOException e) {
throw new RuntimeException("Failed to delete data in Solr. "
+ e.getMessage(), e);
}
}
HBase의 모든 데이터를 삭제하려면 다음과 같이하십시오.
public static void deleteHBaseTable(String tableName, Configuration conf) {
HBaseAdmin admin = null;
try {
admin = new HBaseAdmin(conf);
admin.disableTable(tableName);
admin.deleteTable(tableName);
} catch (MasterNotRunningException e) {
throw new RuntimeException("Unable to delete the table " + tableName
+ ". The actual exception is: " + e.getMessage(), e);
} catch (ZooKeeperConnectionException e) {
throw new RuntimeException("Unable to delete the table " + tableName
+ ". The actual exception is: " + e.getMessage(), e);
} catch (IOException e) {
throw new RuntimeException("Unable to delete the table " + tableName
+ ". The actual exception is: " + e.getMessage(), e);
} finally {
close(admin);
}
}
답변
쿼리 별 삭제 명령에서 “모든 문서 일치”쿼리를 사용하십시오 .
또한 삭제를 실행 한 후 커밋해야하므로 인덱스를 비우려면 다음 두 명령을 실행하십시오.
curl http://localhost:8983/solr/update --data '<delete><query>*:*</query></delete>' -H 'Content-type:text/xml; charset=utf-8'
curl http://localhost:8983/solr/update --data '<commit/>' -H 'Content-type:text/xml; charset=utf-8'
답변
명령 줄에서 다음을 사용합니다.
bin/post -c core_name -type text/xml -out yes -d $'<delete><query>*:*</query></delete>'