2011-12-15 4 views
2
Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_29); 
IndexSearcher indexSearcher; 
File file = new File("/sdcard/index/"); 
Directory indexDir = FSDirectory.open(file); 
indexSearcher = new IndexSearcher(indexDir, true); 
QueryParser parser = new QueryParser(Version.LUCENE_29, "DIG", analyzer); 
Query query = parser.parse(mEdit.getText().toString()); 
ScoreDoc[] hits = indexSearcher.search(query, null, 1000).scoreDocs;  

안녕하세요 이것은 2.9.2 버전의 lucene 텍스트 검색을위한 코드입니다. 나는 lucene snowball 2.9.2에 대한 코드를 작성하여 "game"텍스트를 검색하면 "game"이 포함 된 문서를 검색하여 "games"문서를 검색합니다. 이 코드를 작성하는 방법을 알려주십시오. 당신이Java에서 Lucene Snowball을 작성하는 방법

Analyzer analyzer = new SnowballAnalyzer(Version.LUCENE_29, "English");

그런 식으로 사용할 수 있습니다 나는 루씬에서 텍스트를 검색 할 수있어하지만 난 루씬 눈덩이 2.9.2

답변

0

대신

Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_29);

의 위해 그것을 할 싶어 뒤에는 English Stemmer이 사용됩니다. 혼동을 피하기 위해 색인 시간과 검색 시간 동안 동일한 분석기를 사용해야합니다. 줄기를 사용하면 Lucene 색인에서 정확한 입력 단어가 아니라 줄 바꿈 단어를 저장하게됩니다. 루씬의 최신 버전에서

See Javadoc here for 2.9. , 당신은 (당신이 String 전달하지 않는 한, 더 나은 유형 안전하지만, 클래스 이름이 아니라) EnglishAnalyzer 같은 당 언어 분석기가 있습니다.

관련 문제