2011-03-13 3 views
0

solr DIH를 사용하여 색인을 생성했습니다. Lucene.net 라이브러리를 사용하여 해당 인덱스 데이터를 쿼리하려고합니다.lucene.net을 사용하여 solr 색인을 쿼리하는 방법

는 SOLR 인덱스의 경로는 D입니다 : \ 테스트 \ SOLR 예 \ \ 예 - 다이 하이드로 \ SOLR \ DB \ 데이터 \ 지수

다음과 같이 내가 루씬 인덱스 디렉터리 개체를 만드는 데 사용하는 코드는 다음과 같습니다

Analyzer anz = new StandardAnalyzer(); 
Directory dir = 
FSDirectory.GetDirectory(@"D:\Tests\solr\example\example DIH\solr\db\data\index", false); 
IndexSearcher isearcher = new IndexSearcher(dir); 

코드의 마지막 줄을 실행하는 동안 나는 다음과 같은 예외가 얻을 :

D 파일 '을 (를) 찾을 수 없습니다 : \ 테스트를 \ SOLR 예 \ \ 예 - 다이 하이드로 \ SOLR \ DB \ 데이터 \ 인덱스를 \ 세그먼트 '.

내 SOLR 인덱스 폴더 내의 파일이

  • _0.frq
  • _0.fnm
  • _0.fdx
  • _0.fdt _0.nrm 것을 감안할 때
  • _0.prx
  • _0.tii
  • segments_2

그래서 문제가 무엇 segments.gen

  • _0.tis?

  • 답변

    0

    Lucene은 Lucene 2.9.3에서 실행되는 동안 Lucene 버전 2.9.2.2 정도까지입니다. 이것은 Lucene.NET이 SOLR 색인을 그렇게 쉽게 색인 할 수 없음을 의미합니다.

    자, 이제 SolrSharp과 같은 것을 사용하여 Solr에 직접 액세스하여이 버전 문제를 피할 수 있습니다.

    +0

    내 문제는 이미 내 색인을 쿼리하기 위해 SolrNet 라이브러리를 사용하고 있으며 Sql Server 어셈블리에 SolrNet을 참조하는 자체 어셈블리를 추가하고 자체 어셈블리 내에서 코드를 호출하는 sql에 외부 함수를 생성하려고합니다. 불행히도 SolrNet과 SolrSahrp는 SQL Server에서 지원하지 않는 System.Web 어셈블리를 참조합니다. 그래서 나는 이것을 해결하기 위해 solr 인덱스에 lucene을 사용해야했습니다. –

    +0

    @SubPortal : Solr과의 모든 통신은 HTTP를 통해 이루어지기 때문에 불행히도 SolrNet 또는 SolrSharp를 System.Web없이 사용할 수는 없습니다. –

    +0

    @SubPortal : 왜 SolrNet을 SQL Server에서 실행 하시겠습니까? –

    관련 문제