문제

나는 전자 상거래 사이트에서 검색 서비스를 확보하는 임무를 맡았습니다. 현재 SQL Server에서 전체 텍스트 인덱싱을 사용합니다. 이는 느리게 유연하지 않기 때문에 이상적이지 않습니다.

내가 이것을 루센으로 바꾸는 데 어떻게 접근 할 것을 제안 하시겠습니까? 즉, 모든 데이터를 어떻게 인덱스에 어떻게로드하고 어떻게 유지 될 것인가? "제품 삽입"메소드에서 인덱스에 삽입 할 수 있습니까?

모든 정보는 큰 도움이됩니다!

도움이 되었습니까?

해결책

현재 전자 상거래 프로젝트 중 하나의 검색 엔진으로 Lucene 위에 구축되는 Solr을 사용하고 있습니다. 잘 작동합니다.

http://lucene.apache.org/solr/

또한 DB와 Solr 사이의 제품을 동기화하는 한, 자신의 "스위퍼"를 구축하거나 Solr에서 DataImporthandler를 구현할 수 있습니다.

http://wiki.apache.org/solr/dataimporthandler

우리는 일정 간격으로 DB보기를 읽는 자체 스위퍼를 구축하고 새로운 제품이 있는지 또는 제품 데이터가 업데이트되었는지 확인하기 위해 확인합니다. 그것은 무자비한 힘 방법이며 나는 이전에 dataimporthandler에 대해 알고 있었으면 좋겠다.

패싯은 또한 Solr의 강력한 부분입니다. 나는 그들을 사용하는 것이 좋습니다.

다른 팁

검색에 Lucene.net을 사용하기로 결정한 경우 다음 중 일부를 수행해야합니다.

  • 모든 레코드를 반복하고 인덱스에 검색하려는 데이터를 작성하여 초기 색인 생성
  • 인덱스에 쓰는 레코드 및 데이터의 양이 큰 인덱스를 만드는 경우 여러 인덱스로 채취하는 것을 고려하십시오 (이는 각 색인을 검색 한 다음 결과를 병합해야 할 때보다 복잡한 검색 프로그램을 만들어야합니다. !!)
  • 제품이 업데이트되거나 생성되면 인덱스를 업데이트해야합니다 (여기에 추가 색인 부품을 작성한 다음 인덱스를 병합하는 프로세스가 있습니다).
  • 트래픽 사이트가 높고 동일한 순간에 여러 검색이 발생할 가능성이있는 경우 여러 중복 인덱스 (또는 인덱스 세트)에서 귀하를 검색 할 수있는 래퍼를 만들어야합니다 (여기서 싱글 톤 패턴을 생각해보십시오. ) 한 번에 한 번의 검색에 대해서만 인덱스에 액세스 (열)에 액세스 할 수 있습니다.

이것은 훌륭한 플랫폼입니다. 우리는 처음에 freetext 검색을 사용하려고 노력했으며 인덱스를 만들고 업데이트 및 관리하는 데 고통스러운 것으로 나타났습니다. 검색은 표준 SQL 검색보다 그리 빠르지 않았습니다. 그들은 검색 쿼리에서 약간의 유연성을 제공했습니다. 그러나 심지어 Lucene의 힘과 비교할 때이 말은!

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top