2017-09-23 10 views
0

전자 상거래 응용 프로그램의 faceting 기능에 전원을 공급하기 위해 Solr을 사용하고 있습니다. 여기에 설명 된대로 표준 방식으로 구현되었습니다. https://wiki.apache.org/solr/SimpleFacetParameters#Tagging_and_excluding_Filters대소 문자를 구별하지 못함 패싯에 대한 Solr 쿼리가 결과를 위해 대소 문자를 보존

애플리케이션 측면에서는 UI에서 필터링 경험을 제공하기 위해 Solr에서 반환 한 패싯을 사용했으며 URL은 패싯을 패싯으로 사용하여 작성됩니다. 이 매개 변수는 fq에 대한 패 세팅 매개 변수를 Solr에 더 전달하는 데 사용됩니다.

작은 이미지로 변경하면 더 이상 작동하지 않으며 정의되지 않은 필드 오류가 발생하므로 URL이 대소 문자를 구분합니다.

대소 문자를 구별 할 수있는 방법 Solr Faceting에 대한 쿼리이지만 패싯을 표시하는 데 사용되는 결과에 대해 대/소문자를 유지합니까?

답변

1

우선 : 에 대한 오류가 발생했습니다. 정의되지 않은 필드는입니다. 최종 사용자가 필터링이나 패싯을 허용하려는 필드에 대해 필드의 유효성을 검사하지 않고 사용 된 필드를 지정하도록하지 않아야합니다.

두 번째 : 패싯을 생성하는 데 하나의 필드를 사용하고 필터링을 위해 하나의 필드를 사용하십시오. 패싯을 표현하고 fq에서 사용하기 위해 동일한 필드를 사용해야한다는 것은 없습니다.

필터링에 사용할 KeywordTokenizer 및 LowercaseFilter가있는 필드를 가질 수 있으며 <copyField>을 사용하여 필터링을 위해 소문자로 사용하는 필드의 콘텐츠를 필터링 용 소문자 필드로 복사 할 수 있습니다.

+0

고맙습니다. 필터링을 위해 copyfield를 사용하고 패싯에 원래 문자열 필드를 사용하는 방법을 살펴 보겠습니다. – Krunal

+0

이것을 확인하고 제안한 방식대로 구현했습니다. – Krunal