2016-08-12 2 views
0

솔라 내의 모든 필드를 특정 값으로 검색하려고합니다. title:six을 검색하면 결과가 나타납니다. 그러나 *:six을 검색하면 동의하지 않습니다. 나는 색인 모든 필드에 대한 정보를 수집 all 필드를 가지고, 그래서 all:six 검색하면 나는 그러나 내가 특별히 I '는의 schema.xml에서 *:six모든 솔라 필드의 값 검색

검색 할뿐만 아니라 내 결과를받을 수 있나요 <copyField source="*" dest="all" /> 지시어를 보았지만 어느 쪽이든 작동하지 않는다고 생각합니다 (계속 유지하거나 제거하면 아무 것도 바뀌지 않습니다)

내가 수행 한 작업을 수행 할 수있는 방법이 있습니까?

+0

[Solr - 모든 필드 베스트 프랙티스에 대한 질문] 가능한 복제본 (http://stackoverflow.com/questions/12833592/solr-query-over-all-fields-best-practice) – Mun

+0

@Mun - 내게 말해주세요. 그 질문이 내 질문에 어떻게 대답합니까? – eithed

+0

질문을 다시 읽고 "모든"입력란을 이미 확인했습니다. 당신이 찾고있는 특정 구문을 사용할 수 있다고는 생각지 않지만, 사용자가 입력 할 수 있도록하려는 경우, 서버 측을 "* : 6"에서 "all : 6"으로 변환하는 것이 좋습니다. 후자를 솔라에게 보냄. – Mun

답변

1

검색 * : 6은 법적 구문이 아니며 글로벌 검색으로 작동하지 않습니다. 대부분 대신 실제 텍스트로 구문 분석하고 대신 해당 키워드의 기본 필드를 검색합니다. df 매개 변수로 정의되는 기본 필드 (보통 모두)가 표준 토큰 화를 수행하면 콜론으로 분리되고 해당 기본 필드에서 '*'및 '6'을 검색합니다.

그래서 Solr 구문에 대한 오해로 작용할 수 있으며 언제든지 손상되었을 수 있습니다. 해당 구성이 계속 실행중인 경우 디버그 플래그를 사용하면 쿼리 구문 분석 방법과 검색 대상 필드가 정확하게 표시됩니다. 그것이 당신이 필요로하는 모든 증거입니다.

올바른 방법은 복사 필드이며 모두을 기본 검색 필드로 선언하는 것입니다. 이것이 바로 Solr과 함께 제공되는 예제가 그대로 사용하는 방법입니다.

+0

우수,' 모두'을 기본값으로'solrconfig.xml'에 추가하면 실제로 이것을 해결했습니다 . 나는 네가 옳다고 생각한다. 나는 debugQuery에서'*'를 보지 못했지만 버려 졌을지도 모른다. – eithed