문제

부울이 아닌 개념을 사용하여 Solr에서 모든 문서를 선택/ 삭제하려면 어떻게해야합니까?

즉, Solr에서 모든 문서를 삭제하려면 A59로 시작하지 않는 사람은 누구입니까?

도움이 되었습니까?

해결책

사용 - 표시합니다 NOT.

예를 들어, A59로 시작하지 않은 ID가있는 문서를 쿼리하려면 다음과 같습니다. -id:A59*, 그건: /solr/select/?q=-id:A59*

쿼리로 삭제하려면 지정된대로 쿼리를 업데이트 핸들러에 삭제하는 메시지로 게시하십시오. 여기.

편집하다: NOT (모든 대문자) 부울 연산자로도 사용할 수 있습니다.

다른 팁

느낌표는 그렇지 않습니다.

/solr/select/?q=!id:A59*

위의 경우에 작동해야합니다.

쿼리로 인해 부정적인 삭제가 작동한다고 생각하지 않습니다. 이 Jira 티켓을 참조하십시오. https://issues.apache.org/jira/browse/solr-381

그들은 A :에 접두사를위한 해결 방법이 있다고 말하지만, 나는 그것에 운이 좋지 않습니다.

이것은 작동하지 않습니다 (NOT 사용과 동일) java -ddata = args -jar /opt/solr/example/exampledocs/post.jar "--userid :*"java -jar /opt/solr/example/exampledocs/post.jar *.xml

a 추가 : 구문 오류 (사용하지 않음과 동일) java -ddata = args -jar /opt/solr/example/exampledocs/post.jar ": -userid :*"java -jar/opt/solr/example/ exampledocs/post.jar *.xml

SimplePostTool : 버전 1.4 SimplePostTool : Args를 게시합니다 http : // localhost : 8983/solr/update.. SimplePostTool : Fatal : Solr이 오류 #400 오류를 반환했습니다 Lucene Query SimplePostTool : 버전 1.4

삭제하기 전에 귀하가 언급하는 IS가 문자열이지만 두 용어로 결합되지 않도록하십시오. 내가하는 방법은 스크립트에서 Solr의 데이터를 읽고 단수 삭제 또는 배치로 작성하는 것입니다. 왜냐하면 각 ID에 대한 더 나은 제어 및 검증을 제공하여 잘못된 삭제의 위험을 줄이기 때문에 1 Solr의 데이터를 읽습니다. /solr/select/? q = id : a59*를 사용하는 스크립트

2 ID를 확인하고 검증합니다

3 한 번에 하나 또는 10 ID 그룹으로 하나씩 삭제하십시오.

문안 인사

라자트

처럼 Mauricio 정해진:

쿼리에서 제외하고 원하는 것을 표시하려면 기호를 사용하십시오. 다음 두 쿼리는 A59로 시작하는 문서를 제외한 모든 문서를 삭제합니다.

GET http://<url>/solr/<core>/update?stream.body=<delete><query>-id:A59*</query></delete>
GET http://<url>/solr/<core>/update?stream.body=<commit/>

첫 번째 줄은 삭제 작업을 수행합니다. 두 번째 줄은 커밋을합니다.

파일의 기호를 사용하여 해당 특정 값을 배제하는 것을 의미합니다. 그것은 같은 결과를 줄 것입니다 동일하지 않습니다

다음은 샘플 URL 쿼리 문자열입니다. 나는 유지했다 "& fq = -hq_city_code : mel",

그것은 모든 결과를 건너 뛸 것입니다 HQ_CITY_CODE.

http://localhost:8983/solr/HQ_SOLR_Hotels/select?q=*:*&fq=HQ_National_Code:TH&fq=HQ_TYPE:hotel_EN&fq=HQ_Country_Code:AU&**fq=-HQ_City_Code:MEL**&wt=json&indent=true
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top