2014-07-14 2 views
3

우리가 lucene.net을 통해 데이터를 인덱싱하기 위해 winform을 사용할 때 10 개의 동일한 윈 애플 리케이션이 사무실에서 실행 중이며 모두 인덱스 데이터라고 생각한다고 생각할 때. 인덱스 세그먼트 파일이 모든 PC에 생성되면 문제가 발생하거나 모든 중앙 집중식 pc에서 생성 할 수 있지만 네트워크에서 갑자기 해당 PC를 사용할 수없는 경우 문제가 발생합니다. 그래서 나는 중앙화 된 액세스를 위해 SQL 서버에 lucene.net 인덱스를 저장할 수 있는지 알고 싶다. 가능한 한 나를 안내 해주십시오. 나는 SQL 서버에 lucene.net 인덱스를 저장하기 위해 많은 검색을했지만 찾지 못했습니다. 나는 자바에 관한 기사를 얻었고 그것들이 가능하다는 것을 알았다. 여기가 Lucence contains the JdbcDirectory interface for this purpose 말했다 링크 http://kalanir.blogspot.in/2008/06/creating-search-index-in-database.html데이터베이스에 lucene.net 인덱스를 만드는 방법

입니다하지만 난이 가능 SQL 서버에 루씬 인덱스를 저장할 수 있도록 어떻게 그렇게 사람이 나를 인도 해주십시오 with lucene.net & c#을하고 있어요.

감사

+0

갑자기 SQL Server를 실행하는 서버를 사용할 수 없다면 어떻게 될까요? 아직도 그 문제가 있지 않니? –

+1

[Solr] (http://lucene.apache.org/solr/) – EZI

+0

또는 [ElasticSearch] (http://www.elasticsearch.org/) –

답변

1

사용자 정의 Directory을 만들 수 있지만, 그것은 아주 고통스러운 것입니다. 나는 여러 프로젝트가 이것을 시도하고 실패하는 것을 보았다.

귀하의 접근 방식에 대한 show stopper는 IndexWriter이 디렉토리에 단독으로 액세스한다고 가정합니다. 따라서 동일한 디렉토리에 여러 컴퓨터에서 문서를 작성하는 데 결함이있어 많은 가정이 깨질 수 있습니다.

최상의 방법은 Lucene을 데이터베이스처럼 취급하는 것입니다. 많은 기계가 모두 db의 파일에 직접 쓰는 것을 기대하지 않을 것입니다. 그래서 고객이 말하는 서비스 (SQL Server, MySql, Postgres 등)가 있습니다.

기억 Lucene은 단지 "제품"이 아닌 라이브러리입니다. 필요한 것은 기계가 대화 할 수있는 API가있는 서비스입니다.

ElasticSearch는 다른 곳에서 언급되었으며 매우입니다. 그것을 조사하는 것이 좋습니다. 중복성, 속도, 최신 기능 등 (예, JVM이 필요합니다. JRE가 더 정확합니다. 신중하게 보면 Crapware를 설치하지 않는 다운로드/설치 프로그램이 있습니다).

또한 ASP.net WebAPI를 자체 호스팅하고 Lucene을 래핑하는 서비스를 작성하는 것도 매우 간단합니다. 그것과 대화하는 클라이언트를 만드는 것도 아주 쉽습니다. HttpClient 주위에 그냥 래퍼. (필자는 몇 번이나 해본 적이 있는데, POC를 작동시키는 데는 하루나 이틀 만 걸리지 만, 악마가 자세히 나와 있습니다.)

관련 문제