2016-12-17 19 views
0

쿼리에 SOLR을 사용하는 API에 대한 URL 요청을하려고합니다.SOLR 쿼리에서 null 값이있는 필드 제외

다른 값을 포함하는 많은 필드가있는 데이터가 많으며 종종 이러한 필드 중 일부는 null 값을 포함합니다.

특정 필드가 null이 아니지만 실제 값이 포함 된 모든 데이터를 검색하는 쿼리를 만들고 싶습니다.

예를 들어 각 항목에는 태그 배열 인 tags라는 필드가 있습니다. 태그는 예를 들어 단어 테스트 일 수 있습니다.

나는 태그를 수행하려고 시도했으나 [* TO *] 결과 태그가 반환되는 모든 데이터 세트가 반환됩니다.

나는 또한 태그가 null이고 태그가 실제로 설정되는 모든 데이터를 반환하는 태그를 시도했습니다. [* TO *]

저는 값이있는 태그 만 반환되고 당신이 나를 도울 수 있기를 바란 마지막 사건까지 모든 것을 시도해 왔습니다.

+0

당신은 @Bino 하이 태그 필드 –

+0

에 정규식 일치하고 시도 할 수 yDalal 어떻게 작동하는지 자세히 설명해 주시겠습니까? – Luffen

+0

'tags :/[A-Za-z0-9] + /'와 같은 것입니다. 하지만 유니 코드 지원 정규식 matcher에 대한 확실하지 않지만 대부분의 경우이 작동합니다. –

답변

0

andAND과 같지 않습니다. 이는 검색어에 사용해야하는 구분 기호입니다.

아마도 검색어 (기본 입력란에 and 어딘가에있는 문서) 또는 (deleted:false) 또는 (tags:[* TO *]) 만 검색하면됩니다.

주위에 공백이있는 적절한 구분 기호를 사용하여 여러 조건을 그룹화하십시오. 또한 필터 쿼리 (fq)를 정적 쿼리 (예 : deleted:false)로 사용하면 해당 쿼리를 실제 쿼리와 별도로 캐시 할 수 있습니다.

0

"데이터 검색"및 "검색 필드"와 같은 용어를 혼동하기 쉽기 때문에 약간 혼란 스럽습니다. SOLR에서 쿼리는 (또는 레코드) 문서가 검색되도록 지정합니다. 다음

당신은 필드 "태그"의 일부 가치가있는 모든 문서를 원하는 경우에는 필드 "태그"에 값이없는 모든 문서를 원한다면, 당신은

(tags:*) 

을 사용할 수 있습니다, 당신은 사용할 수 있습니다

(*:* AND NOT tags:*) 

또는

(*:* AND -tags:*) 
+0

휴고 안녕하세요, 감사는 대답을, 내가 가진 시도했다 (태그 : *) 그리고 그냥 문자열 필드 경우 잘 작동하지만, 그것은 집합이기 때문에 그것은 여전히 ​​null로 필드를 반환합니다 보인다 – Luffen

+0

아마 ** 빈 ** 아닌 null입니까? 사용자 정의 UpdateRequestProcessor 체인을 사용하여 빈 필드를 제거 할 수 있습니다. –

+0

이상한 경우, 우리는 그러한 문서의 예를 보여 주어야합니다 ... 아마도 XML 대신 JSON으로 직렬화하면 값이 무엇인지보다 분명하게 알 수 있습니다 (& wt = json 쿼리 매개 변수로이 작업을 수행 할 수 있습니다) –