2012-12-11 5 views
1

나는 sunspot_solr 저장 필드는

text :title, :stored => true 

이 암은 태양 흑점 SOLR를 통해 책 제목을 검색 검색 블록이 라인을 가지고있다. 하지만 실제로 저장된 필드를 사용해야합니까? 문서에 따라

:stored => true 

저장된 필드 데이터는 기본 데이터베이스 (일반적으로 SQL 서버)를 타격하지 않고 검색 할 수 있습니다. 또한 이러한 쿼리와 같이 강조 표시에 필요합니다.

저장된 필드는 Solr 인덱스에서 약간의 성능 비용이 발생하므로 현명하게 사용하십시오.

그러나 실제로 이러한 저장된 필드를 사용해야하는지는 알 수 없습니다. 검색 가능한 블록에 너무 많은 필드가 있기 때문입니다. DB를 치는 것을 피하기 위해 모든 것을 저장해야합니까? 성능 비용은 얼마입니까?

답변

1

태양 광점 관리자가 여기에 있습니다.

Sunspot을 사용하여 ActiveRecord 개체를로드하는 경우 필드 값을 저장하는 것은 강조 표시와 같이 Solr 기능과 함께 사용해야합니다.

012sp을로드하지 않고 Sunspot 검색 응답에서 hits을 렌더링하는 경우보기에 렌더링하는 필드 값을 저장하는 것이 좋습니다. 하지만 elsewhere을 언급 한 이유 때문에 ActiveRecord를 우회하는 분명한 이유가 있습니다.

0

필드를 Solr 응답으로 되돌리려면 일반적으로 표시 용도로 필드를 저장 됨으로 표시하십시오.
필드 만 검색 가능하고 표시되지 않도록하려면 해당 필드 만 색인화하십시오.
대신 DB를 사용하면 어쨌든 검색을 수행 할 때 Solr에서 저장하고 검색하는 것이 더 빠릅니다.
여러 필드에 Stored를 사용하는 배경은 Solr이 실제 값을 저장해야하므로 인덱스 크기가 커질 수 있습니다. 그러나 문서 개수가 그다지 많지 않으면 귀찮게해서는 안됩니다.

+0

내 앱에서 책 제목을 검색 중입니다. 그래서 솔루에서 표시하기 위해 사용 가능한 카운트를 사용하고 있기 때문에 저장된 필드로만 title과 available_count를 추가 할 것입니다. 맞습니까? –

+0

예를 들어 표시해야 할 입력란을 추가하십시오. 서적 검색을 할 때 Amazon 사이트와 마찬가지로 제목, 저자, available_count, 설명 및 일부를 결과에 표시합니다. – Jayendra

+0

아니요. 나는 solr로부터 책 목록을 얻고 제목과 설명 등을 얻기 위해 책 모델을 조사합니다. 그러나 사용할 수는 solr에 저장되어 있으므로 직접 사용할 것입니다. 사용 가능한 개수는 복잡한 쿼리로 계산되므로 인덱싱 중에 solr에 저장하므로 복잡한 쿼리를 반복해서 실행하지 않아도됩니다. 따라서 다음과 같이 저장하는 것이 좋습니다 : available_count, : stored => true –