Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# lucene短语查询不需要';我得不到结果_C#_Lucene - Fatal编程技术网

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不是为其他人编写代码的,所以它是帮助编写代码的。