내가 SOLR에 새로운 해요,이 그것을 할 수있는 최선의 방법 인 경우 나도 몰라 :SOLR : 패싯 범주 태양 흑점
나는 몇 가지 범주로 분류되는 일부 제품을 보유하고 있습니다. 카테고리는
- Electronics
- Computer
- Apple
- iPads
- Macbooks
- Samsung
- Notebooks
- Photo
- Fashion
- Women
- Men
- Shirts
과 같은 계층 구조로 구성됩니다. 모든 제품에는 여러 카테고리가있을 수 있습니다. 예를 들어 제품은 Electronics > Computer > Apple > Macbooks
및 Electronics > Computer > Notebooks
일 수 있습니다. Electronics
의 제품을 나열하면 모든 하위 범주를 포함한 모든 기본 제품이 반환됩니다. Electronics > Computer
에 제품을 나열하면 해당 하위 카테고리의 제품 만 반환됩니다.
내 가게는 레일에 있으며, sunspot을 Solr 용 DSL로 사용합니다. 흑점에서는 category_names
이라는 필드가 있는데이 필드는 multiple: true
과 stored: true
입니다. 이 분야에서는이 같은 SOLR에 저장되어있는 루트에서 가장 깊은 하위 범주에 여러 범주를 저장 :
<arr name="category_names_sms">
<str>Electronics</str>
<str>Electronics#Computer</str>
<str>Electronics#Computer#Notebooks</str>
<str>Electronics#Computer#Apple</str>
<str>Electronics#Computer#Apple#Macbooks</str>
</arr>
나는면 검색 모든 카테고리를 검색하려면, 난 그냥 facet=true&facet.field=category_names
와 SOLR 전화, 난 단지 특정 카테고리에서 제품을 가져 오기 할 때, 그리고 내가 fq=category_names:Electronics
와 SOLR를 호출하고 있는데이 해당 범주에서 모든 제품을 반환
<lst name="facet_counts">
<lst name="facet_queries"/>
<lst name="facet_fields">
<lst name="taxon_names_sms">
<int name="Electronics">2831</int>
<int name="Electronics#Computer">1988</int>
<int name="Electronics#Computer#Apple">543</int>
...
</lst
</lst
</lst>
같은 STH를 반환합니다. 또한 모든 제품에는 루트 카테고리에 대한 경로가 포함되어 있으므로 하위 카테고리에서 제품을 얻을 수도 있습니다.
피어싱 패싯, 계층 적 패싯에 대한 기사를 읽었습니다 ... 솔라 기능을 올바르게 사용하면 약간 혼란 스럽습니다. 내 질문 :
- 이 방법이 좋은 방법입니까? 또는 상상할 수있는 단점이 있습니까? 나는 클라이언트 측에서 범주를 분할하고 구문 분석하기 위해
#
해시 태그를 사용하고 있습니다. 그 점은 내가 좋아하지 않는 점입니다. - 또 다른 문제점은 Solr에서 카테고리를 가져올 때 범주 이름 만 있다는 것입니다. 그러나 카테고리에 ID 또는 퍼머 링크가 필요합니다. Solr에 그러한 정보를 저장하는 방법이 있습니까? 나는이 정보를 얻기 위해 데이터베이스에 접근하고 싶지 않다.
- Solr의 솔루션이 더 좋을까요?이 전체 계층 카테고리를 더 잘 처리 할 수 있습니까?
- 나는 sunspot의 기본 solr XML configs 만 사용합니다. 필자는 필드 정의에 대해 읽었습니다. 누군가 나를 설명 할 수 있나요, 흑점과 함께 사용하는 방법?
고맙습니다. 누군가가 올바른 방향으로 나를 밀어 주길 바랍니다.