저는 제품 색인을 생성하고 여러 범주로 구성하기 위해 Solr을 사용하고 있습니다. 각 문서에는 taxon_names
다중 값 필드가 있으며 여기서 카테고리는 제품에 대해 사람이 읽을 수있는 문자열로 저장됩니다.Solr : 두 개의 출력이있는 하나의 필드 패싯
이제 Solr에서 모든 카테고리를 가져 와서 데이터베이스에 다시 접속하지 않고 사용자에게 클릭 가능한 링크로 표시하고 싶습니다.. 색인을 생성 할 때마다 다중 값 필드 taxon_permalinks
으로 저장되는 MySQL 데이터베이스에서 모든 범주에 대한 영구 링크를 얻습니다. 제품에 대한 링크를 생성하려면 사람이 읽을 수있는 범주의 형식과 해당 퍼머 링크가 필요합니다 (그렇지 않으면 사람이 읽을 수있는 범주의 사람 이름 (예 : % 20)을 사용할 때 브라우저에 그러한 못생긴 URL이 생깁니다) .
http://localhost:8982/solr/default/select?q=*%3A*&rows=0&wt=xml&facet=true&facet.field=taxon_names
으로 패싯 검색을 수행 할 때 사람이 읽을 수있는 taxons 목록을 얻을 수 있습니다. 이 목록을 기반으로 링크를 만들면 데이터베이스를 다시 치울 필요가 없습니다.
그래서 다양한 카테고리에 대해 Solr에서 일치하는 퍼머 링크를 검색 할 수 있습니까?
<response>
<lst name="responseHeader">
<int name="status">0</int>
<int name="QTime">0</int>
</lst>
<result name="response" numFound="6580" start="0"/>
<lst name="facet_counts">
<lst name="facet_queries"/>
<lst name="facet_fields">
<lst name="taxon_names">
<int name="Books">2831</int>
<int name="Music">984</int>
...
</lst>
</result>
을 그리고 taxon_names
배열 안에 나는 영구 링크의 이름을 필요 : 예를 들어, 나는 XML과 같이 얻을.
설정 XML에서 사용자 정의 필드 유형을 정의하면 가능할 수도 있습니다. 하지만이 때문에 저는 Solr에 대한 충분한 경험이 없습니다.
감사합니다! 그러나 (예를 들어)'Books'와'permalink1' 사이의 관계를 어떻게 찾을 수 있습니까? 나는 단지 카운트가 너무 연약하다고 생각한다. 왜냐하면 다른 카테고리가 같은 카운트를 가졌을 때, 그것은 작동하지 않을 것이기 때문이다. 아니면 패싯 결과가 같은 순서입니까? – 23tux
@ 23tux 패싯 결과는 실제로 동일한 순서로되어 있습니다 – g4vroche
@Huge : 귀하의 의견을위한 thx. 그러나 퍼머 링크와 카테고리가 동기화되지 않을 때 (그리고 사용자가이를 편집 할 수 있기 때문에) 더 이상 작동하지 않으므로 맵핑하기가 쉽지 않습니다. 그렇다면, facetting에 사용할 수있는 solr을 사용하여 일종의 키 - 값 쌍을 인덱싱하는 방법이 있습니까? 사용자 정의 데이터 유형과 마찬가지로 schema.xml에 정의되어 있습니까? – 23tux