好的,我已经花了两个小时搜索与此相关的内容,但结果只给出了一些提示,却没有一个完整的代码来解决问题(对于新手而言,如果他们看不到一些示例,那么他们怎么能学习呢?)
我创建了一个索引,如下所示:
Directory directory = FSDirectory.Open(new System.IO.DirectoryInfo(Server.MapPath("/data/channels/")));
Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_29);
IndexWriter writer = new IndexWriter(directory, analyzer, true, Lucene.Net.Index.IndexWriter.MaxFieldLength.UNLIMITED);
Document doc = new Document();
doc.Add(new Field("ID", "0", Field.Store.YES, Field.Index.NO));
doc.Add(new Field("parentID", "0", Field.Store.YES, Field.Index.NO));
doc.Add(new Field("Title", "Root", Field.Store.YES, Field.Index.ANALYZED));
writer.AddDocument(doc);
writer.Optimize();
writer.Close();
现在,我想要搜索字段
ID
,其值等于0
(以获取单个记录)....
但是,像这样简单的搜索:
Directory directory = FSDirectory.Open(new System.IO.DirectoryInfo(Server.MapPath("/data/channels")));
Analyzer analyzer = new Lucene.Net.Analysis.Standard.StandardAnalyzer(Version.LUCENE_29);
Searcher searcher = new Lucene.Net.Search.IndexSearcher(IndexReader.Open(directory, true));
Query query = new Lucene.Net.QueryParsers.QueryParser(Version.LUCENE_29, "ID", analyzer).Parse("0");
Hits hits = searcher.Search(query);
没有返回结果。
我已经了解了NumericRange
、KeywordAnalyzer
等一些内容,
但由于它们都没有提供示例,所以我无法弄清楚如何做。
请好心人给我一个示例,告诉我如何让这个东西工作。