を同様のフレーズを見つける必要があり、私が書く、その後良く読むことができます;)Lucene.net - インデックスに私の悪い英語のため申し訳ありません
私はIAMは、Excelシートからセルを抽出するアプリケーションでlucene.netを実装テキストで入力してインデックスに書き込んでください。その後、約250文字のフレーズで索引を検索し、その結果をアプリケーションに書き込んでいます。フレーズがインデックスのようにまったく同じ場合は、これで完璧に機能します。今私の質問:いくつかの手紙が変更された場合、結果を見つける機会はありますか?それにもかかわらず、誰かが文の中の1つの単語だけを削除すれば、私はクオートを見つけなければならない。私は、Apache-Lucene.Net-2.9.4といくつかの重要な情報を使用しています
:
//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の。誰かが私を助けることができますか?
*あなたが検索したもの*、*あなたが検索したもの*、*あなたが探したいもの*が表示されているサンプルのテキストが良いでしょう。 –