2012-02-16 4 views
0

죄송 인덱스, 내가 더 잘 읽을 다음 쓸 수에 비슷한 문구를 찾을 필요, 나는 스피 엑셀 시트에서 세포를 추출하는 응용 프로그램에서 lucene.net을 구현Lucene.net - 내 나쁜 영어에 대한

) 텍스트로 작성하여 색인에 써야합니다. 그 후 나는 약 250 자 정도의 글자로 색인을 검색하고 그 결과를 응용 프로그램에 씁니다. 이제 문구가 색인에서와 완전히 똑같은 경우에 완벽하게 작동합니다. 지금 내 질문 : 편지가 바뀌면 결과를 찾을 수있는 기회가 있습니까? 그럼에도 불구하고 누군가가 문장에서 한 단어 만 지우면 나는 quoates를 찾아야한다. 나는 여러 분석기를 시도

//used analyzer and IndexWriter 
analyzer = new Lucene.Net.Analysis.De.GermanAnalyzer(); 
writer = new IndexWriter(directory, analyzer, true, IndexWriter.MaxFieldLength.UNLIMITED); 

//Used Field Properties 
doc.Add(new Field("id", txts.ToString(), Field.Store.YES, Field.Index.ANALYZED, Field.TermVector.YES)); 
doc.Add(new Field("DateiName", DateiName, Field.Store.YES, Field.Index.ANALYZED, Field.TermVector.YES)); 
doc.Add(new Field("postBody", text, Field.Store.YES, Field.Index.ANALYZED, Field.TermVector.YES)); 

for (int y = 1; y < 51; y++) 
{ 
    var queryParser = new QueryParser(Version.LUCENE_29, "postBody", analyzer); 
    string temquery = "\""; 
    temquery += sheet.Cells[y, 5].Value.ToString(); 
    temquery += "\""; 
    var query = queryParser.Parse(temquery); 
    TopDocs resultDocs = indexSearch.Search(query, indexReader.MaxDoc()); 
    var hits = resultDocs.ScoreDocs; 
    if (resultDocs.TotalHits > 0 && resultDocs.MaxScore > 1) 
    { 
     foreach (var hit in hits) 
     { 
      found = true; 
      var documentFromSearcher = indexSearch.Doc(hit.doc); 
      combineString += "Zeile: " + documentFromSearcher.Get("id") + 
        "\t" + documentFromSearcher.Get("DateiName") + "\t Zeile: \t" + 
        y.ToString() + "\r\n"; 
      tbAusgabe.Text = combineString; 
     } 
    } 
} 

는, 토큰 및 현장 특성에 대해 많은 것을 읽을 수 있지만 내가 해결책을 찾기 didnt는 :

나는 아파치 Lucene.Net-2.9.4과 몇 가지 중요한 정보를 사용하고 있습니다. 여기 누군가가 나를 도울 수 있습니까?

+1

색인 *, * 검색 한 내용 * 및 * 찾으려는 내용 *을 보여주는 샘플 텍스트가 좋을 것입니다. –

답변

0

fuzzy query 또는 근접 식 쿼리를 사용할 수 있습니다.

예를 들어 "foo bar"~1bar foo과 일치하고 foobar~.5foobaz과 일치합니다.

+0

"foo bar"~ 1은 slop이 1 인 일반 PhraseQuery를 생성하며 토큰이없는 경우에는 일치하지 않습니다. http://lucene.apache.org/core/old_versioned_docs/versions/2_9_4/api를 참조하십시오. /all/org/apache/lucene/search/PhraseQuery.html#setSlop(int) –