Lucene.net-需要在索引中找到类似的短语

Lucene.net-需要在索引中找到类似的短语,lucene,full-text-search,lucene.net,Lucene,Full Text Search,Lucene.net,对不起,我的英语不好,我读得比写得好;) 我在一个应用程序中实现了lucene.net,在这个应用程序中,iam从excel表格中以文本形式提取单元格,并将其写入索引。然后,我用包含大约250个字母的短语搜索索引,并将结果写在应用程序中。如果词组与索引中的词组完全相同,则此功能现在非常有效。我现在的问题是:如果有一些字母被更改,是否有机会找到结果?然而,如果有人只删除句子中的一个单词,我必须找到答案 我正在使用Apache Lucene.Net-2.9.4和一些重要信息: //使用的分析器和In

对不起,我的英语不好,我读得比写得好;)

我在一个应用程序中实现了lucene.net,在这个应用程序中,iam从excel表格中以文本形式提取单元格,并将其写入索引。然后,我用包含大约250个字母的短语搜索索引,并将结果写在应用程序中。如果词组与索引中的词组完全相同,则此功能现在非常有效。我现在的问题是:如果有一些字母被更改,是否有机会找到结果?然而,如果有人只删除句子中的一个单词,我必须找到答案

我正在使用Apache Lucene.Net-2.9.4和一些重要信息:

//使用的分析器和IndexWriter
analyzer=new Lucene.Net.Analysis.De.GermanAnalyzer();
writer=newindexwriter(目录,分析器,true,IndexWriter.MaxFieldLength.UNLIMITED);
//已用字段属性
添加(新字段(“id”,txts.ToString(),Field.Store.YES,Field.Index.analysisted,Field.TermVector.YES));
doc.Add(新字段(“DateiName”,DateiName,Field.Store.YES,Field.Index.analysis,Field.TermVector.YES));
doc.Add(新字段(“postBody”,text,Field.Store.YES,Field.Index.analysisted,Field.TermVector.YES));
对于(int y=1;y<51;y++)
{
var queryParser=新的queryParser(Version.LUCENE_29,“postBody”,analyzer);
字符串temquery=“\”;
temquery+=sheet.Cells[y,5].Value.ToString();
temquery+=“\”;
var query=queryParser.Parse(temquery);
TopDocs resultDocs=indexSearch.Search(查询,indexReader.MaxDoc());
var hits=resultDocs.ScoreDocs;
如果(resultDocs.TotalHits>0&&resultDocs.MaxScore>1)
{
foreach(命中率中的var命中率)
{
发现=真;
var documentFromSearcher=indexSearch.Doc(hit.Doc);
combineString+=“Zeile:”+documentFromSearcher.Get(“id”)+
“\t”+documentFromSearcher.Get(“DateiName”)+”\t子文件:\t”+
y、 ToString()+“\r\n”;
tbAusgabe.Text=combineString;
}
}
}
我尝试了几个分析器,阅读了很多关于令牌和字段属性的内容,但我没有找到解决方案。有人能帮我吗

您可以使用或邻近查询

例如,
“foo-bar”~1
将匹配
bar-foo
foobar~。5
将匹配
foobaz

一些显示索引内容、搜索内容和要查找内容的示例文本会很好。请注意,“foo bar”~1将创建一个slop为1的常规短语查询,如果缺少标记,该查询将不匹配,请参阅