2014-04-24 3 views
5

두 개의 Lucene 쿼리를 수행하려고합니다. 첫 번째 작품. 두 번째는 그렇지 않습니다. 내 첫 번째 쿼리는 다음과 같습니다Lucene 쿼리 공백이있는 필드의 구문

level:"dangerous" 

내 두 번째 쿼리는 다음과 같습니다

IP address:"11.22.333.444" 

내가 쿼리 오류를받지 못했습니다. 그러나 일치하는 IP 주소가있는 문서가 있다는 것을 알고 있습니다. 이런 이유로 "IP"와 "주소"사이의 공간이 문제를 일으키는 것으로 의심됩니다. 그러나 나는 Lucene의 전문가가 아니다. 그래서 나는 그게 맞는지 확신 할 수 없다.

나는 우체부를 사용하여 설정 한 내 결과를 볼 때, 나는 다음과 같다 필드와 문서를 볼 수 있습니다 내 쿼리가 올바른지

"IP address": "11.22.333.444" 

누군가가 말해 주실 수 있습니까? 또는, 내가 뭔가를 놓친다면?

감사합니다.

답변

6

예, 해당 공간이 문제입니다.

필드 이름의 공백은 허용되지만 쿼리 구문 분석기 구문과 충돌합니다. 당신은 같은 공간하기 전에 단일 슬래시를 사용하여 공간을 탈출 할 수

  • IP
  • address:"11.22.333.444"

: 당신은 본질적으로 SHOULD 조항으로 결합 된 두 개의 하위 쿼리 (즉, OR)를 실행하는

IP\ address:"11.22.333.444" 
+0

불행히도, 작동하지 않는 것 같습니다. – user3469584

+1

원본 게시물에 유형이 있다고 의심됩니다. 트릭은 공간을 벗어나는 단일 슬래시를 사용한 다음 작동시키는 것입니다. IP 주소 : ...와 같이 –