C# lucene短语查询不需要';我得不到结果
当我运行此代码时,不会返回任何结果 我犯的错误在哪里C# lucene短语查询不需要';我得不到结果,c#,lucene,C#,Lucene,当我运行此代码时,不会返回任何结果 我犯的错误在哪里 Lucene.Net.Store.Directory directory = FSDirectory.Open(new DirectoryInfo("LuceneIndex")); Analyzer analyzer = new StandardAnalyzer(Lucene.Net.Util.Version.LUCENE_29); var writer = new IndexWriter(directory, analyzer, true,
Lucene.Net.Store.Directory directory = FSDirectory.Open(new DirectoryInfo("LuceneIndex"));
Analyzer analyzer = new StandardAnalyzer(Lucene.Net.Util.Version.LUCENE_29);
var writer = new IndexWriter(directory, analyzer, true, IndexWriter.MaxFieldLength.UNLIMITED);
Document doc = new Document();
string path = "beslikelimecogul.txt";
string title = "contents";
doc.Add(new Field("path", path, Field.Store.YES, Field.Index.ANALYZED));
doc.Add(new Field("title", title, Field.Store.YES, Field.Index.ANALYZED));
writer.Optimize();
writer.Commit();
writer.Close();
Lucene.Net.Store.Directory directory1 = FSDirectory.Open(new DirectoryInfo("LuceneIndex"));
var searcher = new IndexSearcher(directory1);
PhraseQuery query = new PhraseQuery();
query.Add(new Term("contents", "sehid"), 0);
query.Add(new Term("contents", "dusen"), 1);
query.Add(new Term("contents", "gormezden"), 3);
query.Add(new Term("contents", "gelenlerin"), 4);
// display search results
List<string> results = new List<string>();
TopDocs topDocs = searcher.Search(query, 10);
foreach (ScoreDoc scoreDoc in topDocs.ScoreDocs)
{
Document doc1 = searcher.Doc(scoreDoc.Doc);
results.Add(doc1.Get("contents").Split(' ')[2]);
}
Lucene.Net.Store.Directory Directory=FSDirectory.Open(newdirectoryinfo(“LuceneIndex”);
Analyzer Analyzer=新的StandardAnalyzer(Lucene.Net.Util.Version.Lucene_29);
var writer=new IndexWriter(目录、分析器、true、IndexWriter.MaxFieldLength.UNLIMITED);
单据单据=新单据();
字符串路径=“beslikelimecogul.txt”;
string title=“contents”;
新增单据(新增字段(“路径”,路径,Field.Store.YES,Field.Index.analysed));
新增单据(新增字段(“标题”,标题,Field.Store.YES,Field.Index.ANALYZED));
writer.Optimize();
writer.Commit();
writer.Close();
Lucene.Net.Store.directory1=FSDirectory.Open(新目录信息(“LuceneIndex”);
var searcher=新索引搜索器(directory1);
PhraseQuery查询=新建PhraseQuery();
添加(新术语(“内容”,“sehid”),0);
新增(新术语(“目录”、“杜森”),1);
添加(新术语(“目录”,“戈尔梅兹登”),3);
新增(新术语(“目录”、“格林林”),4);
//显示搜索结果
列表结果=新列表();
TopDocs TopDocs=searcher.Search(查询,10);
foreach(topDocs.ScoreDocs中的ScoreDoc ScoreDoc)
{
文档doc1=searcher.Doc(scoreDoc.Doc);
结果.添加(doc1.Get(“contents”).Split(“”)[2]);
}
我猜您希望Lucene读取名为的文件beslikelimecogul.txt
。不要-你必须自己做这件事,并向Lucene提供文件内容
此外,您还可以创建两个字段(路径
和标题
),但可以查询内容
此外,无需重新打开同一目录,只需重新使用目录
,而不是创建目录1
希望这有帮助。非常感谢您的帮助,但我是lucene的新手。添加(术语,0)、(术语,1)、(术语,3)、(术语,4)以进行查询。我的目标是在beşlikelime.txt文件中查找(术语,2)。要为这个问题编写什么代码?我建议您阅读一本关于Lucene的书或教程,并使用一些有用的示例。然后,修改示例以适合您的情况应该不难。很抱歉,StackOverflow不是为其他人编写代码的,所以它是帮助编写代码的。