c# – Lucene – 搜索数值字段

好的,我在过去的两个小时里搜索过这个,结果只给出了提示,
甚至没有一个完整的代码来救援(如果他们看不到一些样品,小便会怎么学?)

我创建了一个像这样的索引:

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",Field.Index.NO));
doc.Add(new Field("Title","Root",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等等,
但由于他们都没有提供样本我无法弄清楚如何做到这一点.

请亲切的人,给我一个如何使这件事工作的例子.

解决方法

在Field字段中将Field.Index.NO更改为Field.Index.ANALYZED(或Field.Index.NOT_ANALYZED)

相关文章

在要实现单例模式的类当中添加如下代码:实例化的时候:frmC...
1、如果制作圆角窗体,窗体先继承DOTNETBAR的:public parti...
根据网上资料,自己很粗略的实现了一个winform搜索提示,但是...
近期在做DSOFramer这个控件,打算自己弄一个自定义控件来封装...
今天玩了一把WMI,查询了一下电脑的硬件信息,感觉很多代码都...
最近在研究WinWordControl这个控件,因为上级要求在系统里,...