Lucene.NET - 按 int 排序
在最新版本的 Lucene(或 Lucene.NET)中,按排序顺序获取搜索结果的正确方法是什么?
我有一个这样的文档:
var document = new Lucene.Document();
document.AddField("Text", "foobar");
document.AddField("CreationDate", DateTime.Now.Ticks.ToString()); // store the date as an int
indexWriter.AddDocument(document);
现在我想要进行搜索并按最新的顺序获取结果。
如何执行按 CreationDate 对结果进行排序的搜索? 我看到的所有文档均适用于使用现已弃用的 API 的旧 Lucene 版本。
In the latest version of Lucene (or Lucene.NET), what is the proper way to get the search results back in sorted order?
I have a document like this:
var document = new Lucene.Document();
document.AddField("Text", "foobar");
document.AddField("CreationDate", DateTime.Now.Ticks.ToString()); // store the date as an int
indexWriter.AddDocument(document);
Now I want do a search and get my results back in order of most recent.
How can I do a search that orders results by CreationDate? All the documentation I see is for old Lucene versions that use now-deprecated APIs.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在做了一些研究并摸索 API 后,我终于找到了一些未弃用的 API(从 v2.9 和 v3.0 开始),它们允许您按日期排序:
注意,我正在对创建日期进行排序长比较。这是因为我将创建日期存储为 DateTime.Now.Ticks,它是一个 System.Int64,或者在 C# 中为 long。
After doing some research and poking around with the API, I've finally found some non-deprecated APIs (as of v2.9 and v3.0) that will allow you to order by date:
Note I'm sorting the creation date with the LONG comparison. That's because I store the creation date as DateTime.Now.Ticks, which is a System.Int64, or long in C#.