2014-08-27 6 views
0

Solr 필드 이름에 $ 기호가있는 인덱스가 있습니다. 다시 색인 생성은 옵션이 아닙니다. Solr에서 $가 변수 식별자 (See here) 인 기능 쿼리가 있습니다. 내가 (FL = $ created_dt, 이름) 특정 필드를 검색하는 쿼리를 호출 할 때, SOLR 오류를

오류 구문 분석 필드 이름을 반환합니다 : '$ created_dt, $ 이름'

을 기능을 구문 분석하는 동안의 param created_dt 누락

나는 그것이 Solr을 변수로 해석하기 때문이라고 생각합니다. 그것을 고칠 방법이 있습니까?

답변

0

일반적으로 Solr에서 필드 이름에있는 대부분의 기호는 사용하지 않는 것이 좋습니다. 특히 $는 구문 분석 중에 쿼리 문자열에서 별도의 인수 (예 : foo=$qq&qq=bar)를 허용하는 데 사용됩니다.

그러나 사용할 수있는 작은 해킹은 fl입니다. 첫 번째 필드에 기호가 없으면 구문 분석을 수행해야합니다. fl=name,$created_dt을 사용하면 포함 된 오류 메시지에서 $ name을 (를) 가지려는 의도 일지 모르지만 작동합니다. 그렇다면 $없이 다른 필드 이름을 사용하십시오. &fl=name,$foo_i은 4.9.0 미만에서 작동합니다.

나중에 더 정규화 된 필드 이름으로 이전을 계획 할 수 있습니다.

+1

$ 기호없이 요청에 fl을 제출했습니다. 예외는 Solr이 추가했습니다. 이것은 실제로 작동하지만이 뒤에 $ 기호가있는 다른 매개 변수를 추가하면 필드가 표시되지 않습니다. 즉, 요청의 fl이 이름 $ foo1 $ foo2 인 경우 응답은 문서를 반환하지만 필드는 반환하지 않습니다. – Windys