Lucene - поиск поля числового значения

хорошо, я искал это в последние два часа с результатами, которые дают только подсказки, {{1 }} и ни одного полного кода на помощь (как новички узнают, если они не видят некоторые образцы?)

Я создал такой индекс:

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);

не возвращает результатов. {{1 }} Я читал о NumericRange , KeywordAnalyzer и некоторых других вещах, , но поскольку ни один из них не предоставляет образец, я не мог понять, как это сделать.

пожалуйста, добрые люди, дайте мне пример, как заставить эту штуку работать.

6
задан Mauricio Scheffer 23 October 2011 в 14:12
поделиться