2009-11-10 3 views
5

ok, 저는 SOLR과 Lucene을 완전히 처음 접했지만 Tomcat 6.x에서 Solr을 즉시 사용할 수있게되었습니다. 그리고 기본 Wiki 항목 중 일부를 방금 들었습니다.웹 프로젝트에서 SOLR을 사용하는 가장 좋은 방법은 무엇입니까?

몇 가지 질문이 있으며 몇 가지 제안 사항이 필요합니다.

  1. Solr은 파일 (XML, CSV)의 데이터를 색인화 할 수 있으며 색인을 생성 할 수도 있습니다. 또한 URI/도메인을 가리킬 수 있고 Google에서하는 것처럼 웹 사이트의 색인을 생성 할 수 있습니까?

  2. "페이지 이름", "페이지 콘텐츠"등 "제품", "SKU"등 "페이지"데이터가있는 웹 사이트가있는 경우, Schema.xml 파일? 그렇다면 Solr의 두 가지 인스턴스를 의미합니까? 당신은 당신이 가장 좋은 방법은?

    1. 다음의 3 가지 옵션 중 하나를 말하는 것입니다 무슨 큰 관계형 및 표준화 된 데이터베이스와의 프로젝트를 가지고있는 경우

    마지막으로, 미들웨어 서비스가 실행 되세요 DB를 채굴하고 수동으로 관련 XML 파일을 생성하여 SOLR로 전송합니다.

  3. SOLR은 DB에 직접 색인을 지정합니다. 이 경우 모든 테이블 관계를 추상화 할 뷰로 SOLR을 지정하는 것이 가장 좋을까요?

  4. 다른 옵션은 무엇입니까?

컨텍스트 : 우리는 SQLServer에, 윈도우 2003 환경에서 2005/2008

환호를 .NET 3.5을 실행하는!

답변

7
  1. 아니요, 예를 들어 크롤러가 필요합니다. Nutch
  2. 예, 데이터 세트가 관련되어 있지 않으므로 두 개의 개별 인덱스 (= 2 개의 schema.xml)가 필요합니다. 이것은 Solr의 두 인스턴스를 의미하지는 않습니다. Cores으로 두 인덱스를 관리 할 수 ​​있습니다.

Solr 색인을 채우는 데는 특정 프로젝트에 따라 달라집니다. 예를 들어 부실 데이터를 허용 할 수 있습니까? 아니면 절대적으로 신선해야합니까? 인덱스 데이터에

다른 옵션은 다음과 같습니다 당신이 ORM 어떤 종류가 차단 기능을 사용하여 사용하는 경우

  • 데이터베이스는
  • 을 트리거합니다. 예를 들어 NHibernate 이벤트를 사용하여 업데이트, 삽입 또는 삭제시 인덱스를 업데이트 할 수 있습니다. NHibernate와 SolrNet을 사용한다면 taken care of automatically
+0

+1 감사합니다. Mauricio, 정말 유용합니다. 나는 당신이 한 지점, 아마도 두 곳에서 조금 확장 할 수 있는지 궁금합니다. 오래된 데이터와 신선한 데이터의 관점에서 내가 사용하는 데이터 소스는 상관 없습니까? 얼마나 자주 내가 커밋을하는 지 ... 모든 커밋 (추가/업데이트/삭제)을 수동으로 올바르게 수행해야한다고 가정 할 때? SolrNet에 관해서는 SOLR과의 직접적인 통신에 대해 걱정할 필요가 없습니까? 다시 한 번 감사드립니다 데이터 신선도에 관한 – andy

+1

: 데이터의 * 사용자 * (소비자)에 따라 다릅니다. 소비자가 오프라인/배경 인덱스 방법을 배제하는 최신 데이터를 항상 볼 필요가 있다면 트리거 나 ORM 차단과 같은 좀 더 사후 대응책을 찾아야합니다. 물론 웹 페이지를 인덱싱 할 때 "트리거"가 없으면 크롤러 만 사용할 수 있습니다. 예, SolrNet이 .Net을 처리합니다. <-> Solr 통신. –

+0

@mauricio : 감사합니다. 우리는 사이트를 구축하기 위해 사용자 정의 CMS를 사용합니다. 따라서, 페이지/제품이 CMS에서 편집 될 때마다 XML을 통해 Solr에 업데이트/삭제 만 커밋한다고 생각합니까? 또한 우리는 NHybernate를 사용하지 않기 때문에 SolrNet에는 아무런 이점이 없을 것입니다. 다시 한 번 고마워, 이건 정말 도움이 – andy

1

나는 Mauricio가 그의 충고로 죽었다고 생각한다. 내가 만들 수있는 유일한 포인트는 "미들웨어"인덱서를 사용하거나 데이터베이스를 직접 사용하기로 결정할 때입니다. 데이터베이스 (또는 뷰?)가 Solr 스키마가 원하는 것과 매우 밀접하게 매핑되면 DIH가 좋습니다.그러나 여러 데이터 소스에서 색인을 생성하거나 Solr이 원하는 것을 충족시키기 위해 데이터베이스의 데이터를 조작해야하는 경우 전용 미들웨어 인덱서를 사용하는 것이 좋습니다.

+0

그리고 "죽었다"는 말은 매우 정확합니다! 단지 누군가가 혼란스러워했다면! –

+0

멋진 조언, Eric에게 감사드립니다. 미들웨어를 사용하는 것이 완전히 어리석은 지 궁금한 점이 있었지만, 데이터 소스가 다양하다는 환경에서 의미가 있다고 생각합니다. 건배! +1 – andy

관련 문제