如何过滤我的 lucene 搜索结果?

2024-01-02

说我的要求是

"search for all users by name, who are over 18"

如果我使用 SQL,我可能会写这样的内容:

Select * from [Users]
Where ([firstname] like '%' + @searchTerm + '%' OR 
       [lastname] like '%' + @searchTerm + '%')
    AND [age] >= 18

然而,我很难将其翻译成 lucene.net。

这是我到目前为止所拥有的:

var parser = new MultiFieldQueryParser({ "firstname", "lastname"}, new StandardAnalyser());
var luceneQuery = parser.Parse(searchterm)

var query = FullTextSession.CreateFullTextQuery(luceneQuery, typeof(User));

var results = query.List<User>();

如何添加“年龄 >= 18”位?

我听说过.SetFilter(),但这仅接受 LuceneQueries,而不接受 IQueries。如果SetFilter是正确的使用方式,如何制作合适的过滤器?如果没有,我该使用什么以及如何做?

Thanks!

附:这是我为了清楚起见而尝试做的事情的一个大大简化的版本,我的WHERE子句实际上比这里显示的要复杂得多。实际上,我需要检查子查询中是否存在 id 并检查许多未索引的属性。给出的任何解决方案都需要支持这一点。

Thanks


对于年龄字段,您需要一个范围搜索 http://lucene.apache.org/java/2_4_1/queryparsersyntax.html#Range%20Searches,用 Lucene 的语法编写,如下所示:

age:[18 TO 100]

正如甘道夫所说,你可以使用查询包装过滤器 http://lucene.apache.org/java/2_4_1/api/org/apache/lucene/search/QueryWrapperFilter.html。我不确定 Nhibernate 搜索中是否存在这种情况。类似地,您可以使用“AND”来进一步限制您的查询。 我不确定您可以对未索引的属性做什么。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何过滤我的 lucene 搜索结果? 的相关文章

  • Lucene 3 上的“令牌”列表

    我是 Lucene 的新手 我开始学习版本 3 分支 但有一件事我不明白 显然是因为我在该主题上没有经验 在 Lucene 2 9 中 如果我想要一个令牌列表 我会创建一个 Token 类的 ArrayList 例如 ArrayList 这
  • 使用 NHibernate 深复制实体

    我目前正在工作中启动一个新的 ASP NET MVC 项目 我们需要生成项目成本估算 我们使用 NHibernate ASP NET MVC 1 0 和 StructureMap 客户希望能够填写有关项目的所有信息 这些信息位于不同的页面中
  • Fluent NHibernate IDictionary 具有复合元素映射

    我有这两门课 public class Category IDictionary
  • 更新数据库后 NHibernate 查询缓存不起作用

    我在 FluentNHibernate 中启用了二级缓存 Fluently Configure Database MsSqlConfiguration MsSql2005 ConnectionString connectionString
  • 为什么 NHibernate 在选择时删除然后插入复合元素?

    有人可以向我解释一下关于 NHibernate 如何处理复合元素的这个小谜团吗 我的课程看起来像这样 public class Blog public virtual int Id get private set public virtua
  • apache solr:group by 产生的数据总和

    我们有一个要求 需要按特定字段对记录进行分组 并获取相应数字字段的总和 前任 select userid sum click count from user action group by userid 我们尝试使用 apache solr
  • 使用二级缓存时,nhibernate 查询缓存和实体缓存有什么区别?

    我正在尝试设置 nhibernate 二级缓存我在这篇文章中看到 http www gitshah com 2012 03 nhibernate and caching part 2 html我想了解查询缓存和实体缓存之间的区别 它说你需要
  • 存储库本身通常不经过测试?

    抱歉 我对存储库模式 单元测试和 orm 工具还不熟悉 我一直在研究单元测试和存储库模式 并得出一些结论 我想知道我是否正确 存储库模式有助于在使用它的控制器中替换单元测试 例如 对吧 因为创建上下文 在 EF 中 或会话 在 NH 中 的
  • NHibernate 会话线程安全

    我已经使用 NHibernate 一段时间了 并且不时发现如果我尝试同时请求两个页面 或尽可能接近 偶尔会出错 所以我认为这是因为我的会话管理不是线程安全的 我以为这是我的课 所以我尝试使用与这篇博客文章不同的方法http pwigle w
  • Postgresql 上的 Castle Activerecord 错误是“关系不存在”?

    ActiveRecord 映射 ActiveRecord JobTitle Schema public public class JobTitle ActiveRecordValidationBase
  • Lucene 评分:在什么情况下使用 queryNorm?

    我对 lucene 的评分策略有点困惑 我知道Lucene的评分公式是这样的 score q d coord q d x queryNorm q X SUM
  • 软删除 Nibernate

    我想对我的数据库表进行软删除 我应用了以下语句 如此处所述http nhibernate info blog 2008 09 06 soft deletes html http nhibernate info blog 2008 09 06
  • 如何在 NHibernate 中自动生成 ID

    如何让 NHibernate 自动生成表的唯一 ID ID 可以是任意的long值 只要每个值仅使用一次 我当前的映射如下所示
  • 流畅的 NHibernate 和 XML 列

    我正在从头开始构建一个新站点 并正在考虑使用 Fluent NHibernate 作为我的 ORM 我认为它可以轻松处理所有事情 可能除了我的 XML 列 我从来没有使用 NHibernate 构建过网站 尽管我使用过 Hibernate
  • Lucene,索引已经/外部标记化的标记并定义自己的分析过程

    在使用Lucene的过程中 我有点失望 我不明白或不明白我应该如何继续为任何 Lucene 分析器提供已经可直接索引的东西 或者我应该如何继续创建我自己的分析器 例如 如果我有一个List
  • NHibernate Projections - 如何投影集合

    有一个场景 我只需要从实体中选择单个 几列 但在查询中选择多个子项 我一直在尝试投影 但在集合属性上出现错误 这是很正常的情况 但找不到有关投影集合的信息 仅属性 Customer customerAlias null Order orde
  • NHibernate 中具有不同类型答案的问题

    我正在尝试找到一个问卷问题的简洁解决方案 假设我有一个Questionnaire类有一个集合Answers e g public class Questionnaire public virtual ISet
  • nHibernate + wcf + Isession

    我有一个包含 3 个项目的 C 解决方案 数据 WCF 和 UI 第一个是与数据库对话的类库 它通过第二个项目公开 该项目的类型为 WCF 服务库 原因是它将在第三个项目 称为 UI 的 Asp net 应用程序 作为指向 dll 的简单
  • NHibernate 获取 & 字符串 Id

    我在 NHibernate 上有一个分配了字符串 Id 的实体 并且在通过 Id 获取实体时遇到了一些问题 例子 假设有这样的数据库记录 Id Description AAA MyDescription 现在 如果我使用搜索 ID aaa
  • Lightspeed 与 NHibernate

    有什么体验光速 http www mindscape co nz products LightSpeed comparison aspx Mindscape 提供的比较并没有过多说明 NHibernate Lightspeed 看起来很灵活

随机推荐