求助关于Lucene 中RangeQuery的问题

guolaizuozuo 2012-08-14 10:22:52
代码 如下
Term beginT = new Term("ArticleID", txtArticleID1.Text);
Term endT = new Term("ArticleID", txtArticleID2.Text);
Query query3 = new RangeQuery(beginT, endT, true);
当 txtArticleID1.Text=599 txtArticleID2.Text=600的时候
理论应该只出现id号为599和600的信息
结果出来的是:599 ,59902,59900,59935 这些信息 ,从结果开好像是包含599的都出来了
明显不是想要的结果,不知道是怎么回事

当输入当 txtArticleID1.Text=1 txtArticleID2.Text=600的时候
提示:maxClauseCount is set to 1024

我若想查找ArticleID>10000的输入应该如操作


还想问下,当要查找的字段是汉字,如何显示出这个字段字数大于3个字数以上的信息吗




...全文
101 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
代码转载自:https://pan.quark.cn/s/a71f542293b3 Lucene作为一个功能全面的全文检索工具库,被广泛部署于多样化的数据检索应用场景。 在.NET开发环境,借助Lucene执行时间范围检索是提升数据检索作业效能与结果精准度的关键途径。 本篇将详细阐述在.NET平台如何达成Lucene的时间区间查询匹配操作,以及关联的技术要点。 我们必须掌握Lucene的基础操作环节,涵盖索引生成过程、查询指令解析以及结果调取步骤。 在.NET环境,可以通过Apache.Lucene.Net组件来实施对Lucene的操作。 当进行索引构建时,需要将带有时间戳的文档字段(诸如"created_at"或"modified_date")进行存储并实施分词处理,从而为后续的查询操作奠定基础。 分词处理是为了使Lucene能够精确识别时间值,并据此与查询条件进行比对。 时间区间查询的核心在于构建合适的Query对象。 Lucene提供了多种查询模式,例如TermQuery、PrefixQueryRangeQuery等不同类型。 在时间范围检索场景下,通常采用RangeQuery来实现。 RangeQuery支持在预设的时间框架内搜寻符合要求的文档记录,其设定可包含或排除边界值。 例如,可以构建一个RangeQuery来检索所有在特定日期区间内创建的文档记录。 以下是一个简明示例,演示了在.NET如何构建并实施时间区间查询:```csharpusing Lucene.Net.Index;using Lucene.Net.Search;// 假定存在一个名为dateField的时间戳字段var startDate = new DateTime(2020, 1, 1);va...

51,410

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧