2011-05-13 1 views
0

내 검색 페이지의 기본으로 AdvancedDatabaseCrawler를 사용하고 있습니다. 나는 내가 원하는 것을 검색 할 수 있도록 구성했으며 매우 빠릅니다. 문제는 필드 값에 액세스해야하는 검색 결과로 원하는 것을 수행하자마자 성능이 저하된다는 것입니다.검색 색인에서 사용자 지정 값을 검색하기 위해 Sitecore 검색을 구성하는 방법

검색 결과가 1000 개가 반환되는 경우에도 기본 검색 결과 부분은 괜찮습니다. 페이지 당 10 또는 20 개의 결과 만 표시하므로 10 개 또는 20 개의 항목 만 검색하면됩니다. 그러나 사이드 바에서는 각 필터링 옵션 (이베이 스타일)과 관련된 숫자 또는 결과와 함께 다양한 필터링 옵션을 나열하고 있습니다. 이러한 필터 옵션을 검색하기 위해 검색 결과를 기반으로 관계 검색을 수행합니다. 검색 결과에는 SkinnyItems 만 포함되어 있으므로 필터링 할 값을 얻으려면 실제 결과를 얻기 위해 모든 단일 결과에서 GetItem()을 호출해야합니다. 즉, Database.GetItem (id)을 1000 번 호출합니다! 분명히 그것은 그렇게 대단히 효율적이지 않습니다.

여기에 뭔가가 있습니까? 검색 색인에서 맞춤 값을 검색하기 위해 Sitecore 검색을 구성 할 수있는 방법이 있습니까? 인덱스에서 값을 검색 할 수 있다면 왜 검색 할 수 없습니까? 할 수 없다면 데이터베이스에서 각 항목을 가져 오지 않고 어떻게 결과를 처리 할 수 ​​있습니까? http://cameras.shop.ebay.com.au/Digital-Cameras-/31388/i.html

답변

1

나는 현재 내가 의한 필터링하거나 검색 결과 수집에 반환해야합니다 모든 필드에 대한 동적 필드를 정의하여이 문제를 해결했습니다. 그렇게하면 필자는 데이터베이스에서 필드 값을 가져올 필요없이 필요한 검색을 수행 할 수 있습니다. 필자는 동적 필드를 추가하여 인덱스를 재구성 할 때 성능이 저하된다고 가정합니다. 그러나 나는 그걸로 살 수있다.

나중에 Apache Solr과 같은 제품을 활용할 것입니다.

관련 문제