2013-07-11 3 views
0

Lucene을 기본적인 상황에서 구현하는 데 더 간단한 래퍼 레이어 인 SimpleLuucene을 내 앱에 추가하여 쿼리 속도를 향상시키고 자합니다. 그러나 코드를 묶는 가장 단순한 작업 개념을 수행했을 때 어떤 결과도 얻지 못했습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?Lucene의이 구현이 결과를 반환하지 않는 이유는 무엇입니까?

추신 : 색인을 처음 만들 때 코드를 생략했습니다. 그러나 실행되었고 cfs 및 fdt 파일에는 데이터가 있습니다.

var searchcriteria = new Search.Helpers.Mapping().MapToModel(postdata); 
var searcher = new DirectoryIndexSearcher(
    new DirectoryInfo(@"c:\search.index"), 
    true); 
var query = new TermQuery(
    new Term("situs", "1144 Air Cargo Ave, Sarasota, Fl, 34243")); 

var searchService = new SearchService(searcher); 
var luceneresults = searchService.SearchIndex(query); 
+0

무엇을 찾으려고합니까? "1144 Air Cargo ..."와 정확히 일치하는 단어가있는 문서, 임의의 순서로 모든 단어가 포함 된 문서 또는 해당 단어가 포함 된 문서? – Keith

답변

1

쿼리 개체 TermQuery가 입력 값 입니다 정확히 일치하도록 노력할 것입니다. 입력 값과 인덱싱 된 값의 차이 (예 : FL 대신 Fl)는 일치하지 않게됩니다. Lucene이 일치하는 문서를 반환하려면 모든 대소 문자, 공백 및 기호가 동일해야합니다. 미묘한 차이를 피하기 위해 입력 및 색인 된 값을 사전 처리 (즉, 인덱싱하기 전에 하단 케이스 문자열 및 모든 검색 입력에 대해 유사하게) 제안합니다.

관련 문제