извините за мой плохой английский, я могу читать лучше, чем писать;)Lucene.net - нужно найти похожие фразы в индексе
Я реализовал Lucene.Net в приложении, где РМКО извлечение клеток из листа первенствовать в тексте и записать их в индекс. После этого я искал индекс с фразами, которые содержат около 250 букв и записывают результат в приложение. Теперь это работает отлично, если фраза точно такая же, как в индексе. Мой вопрос сейчас: есть ли шанс найти результаты, если некоторые буквы изменились? Тем не менее, я должен найти квоты, если кто-то удаляет только одно слово в предложении.
Я использую 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;
}
}
}
Я попробовал несколько анализаторов, много читал о маркерах и полевых свойствах, но я не нашел решение. Кто-нибудь здесь может мне помочь?
Несколько примеров текста, показывающих *, что вы указали *, * то, что вы ищете * и *, что вы хотите найти *, было бы хорошо. –