これは過去2時間以内に検索しました。結果は であり、救済のための完全なコードは1つもありません(どのようにnoobsが私はそうのようなインデックスを作成したサンプル)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", "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();
、私は価値が0
に等しいフィールドID
(私が持っている単一のレコードを取得する)を検索したいです... 。
のような簡単な検索があります:
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
といくつかのもの、 を読んだことがありますが、それらのどれもサンプルを提供していないので、私はそれを行う方法を理解できませんでした。
してください、親切な人、私にこのことを動作させる方法の例を教えてください。 IDフィールドに
ただ1つのintを検索する場合は、範囲で検索する必要はありません。 TermQuery query = new TermQuery(新しいTerm( "TaxonRankSortOrder"、NumericUtils.IntToPrefixCoded(3000))); –