solr
에서 동적 필드를 사용하는 필터 시스템을 개발하려고합니다. 이 동적 필드는 제품마다 다를 수 있으며 접두사가 attribute_filter_
이므로 필터 필드를 인식하는 데 도움이됩니다. 따라서 검색 쿼리가 주어지면이 동적 필드를 기반으로 패싯 처리 된 결과를 얻고 싶습니다. 내 검색 쿼리가 문서 1 doc2, 내가 원하는 일치하는 경우에만 색상, 브랜드 및 카테고리 등면 필드입니다 attribute_filter_color
, attribute_filter_brand
및 필터 때솔리드의 패싯으로 동적 필드
예를 들어, 나는 solr
{ID:1, attribute_filter_color:"white", attribute_filter_brand:"Dell"}
{ID:2, attribute_filter_color:"red", attribute_filter_category:"electronics"}
{ID:3, attribute_filter_size:"mobiles", attribute_filter_brand:"samsung"}
에 문서 등의 3 개 제품을 attribute_filter_category
. 내 검색 쿼리가 문서 2 doc3 일치하면
, 나는 필터 색상, 크기, 카테고리 및 브랜드 등면 필드 attribute_filter_color
, attribute_filter_size
, attribute_filter_category
및 attribute_filter_brand
있습니다합니다.
내 검색어가 doc1 및 doc3과 일치 할 때 필터 색상, 브랜드 및 크기가 필요하므로 패싯 필드는 attribute_filter_color
, attribute_filter_brand
및 attribute_filter_size
입니다.
또한이 필터는 10 개 이상 ~ 300 개 제품 일 수 있습니다. 이로 인해 GET URL
의 한계를 초과 할 수있는 300 개의 패싯 필드가있는 GET URL
을 만드는 또 다른 문제가 발생합니다.
이 jira ticket은이 상황에서 정규 표현식이 어떻게 도움이되었는지 보여줍니다.
Solr은 GET 인수 길이 문제를 피하기 위해 모든 매개 변수를 POST 데이터로 제공합니다 (대부분의 클라이언트는 기본적으로 POST를 사용합니다). – MatsLindh