Dem*_*tic 6 c# lucene search lucene.net
好吧,我在过去的两个小时内搜索过这个结果只给出了提示,甚至没有一个完整的代码来帮助救援(如果他们看不到一些样品,小便会怎么学?)
我创建了一个像这样的索引:
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();
Run Code Online (Sandbox Code Playgroud)
现在,我想搜索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);
Run Code Online (Sandbox Code Playgroud)
没有结果.我已经阅读过NumericRange,KeywordAnalyzer还有更多的东西,但由于它们都没有提供样本,我无法弄清楚如何去做.
请亲切的人,给我一个如何使这件事工作的例子.
我使用NumericField和NumericRangeQuery来搜索Lucene索引的数字.
创建索引时:
NumericField taxonRankSortOrder = new NumericField("TaxonRankSortOrder", Field.Store.YES, true);
taxonRankSortOrder.SetIntValue(rank);
document.Add(taxonRankSortOrder);
Run Code Online (Sandbox Code Playgroud)
然后使用查询:
NumericRangeQuery query = NumericRangeQuery.NewIntRange("TaxonRankSortOrder", 3000, 3000, true, true);
Run Code Online (Sandbox Code Playgroud)
将使用TaxonRankSortOrder等于3000返回所有文档.
您必须自己创建查询而不是使用QueryParser,因此我们希望看看是否有更好的方法.
| 归档时间: |
|
| 查看次数: |
6471 次 |
| 最近记录: |