LinqToLucene 和 Lucene.Net.Linq 之间的区别

2024-01-12

  1. Are the LinqToLucene http://linqtolucene.codeplex.com/Lucene.Net.Linq https://github.com/themotleyfool/Lucene.Net.Linq项目不同?
  2. 它们各自的优点和缺点是什么?
  3. 由于我发现 Lucene.Net.Linq 相对于 LinqToLucene 最近进行了更新,并且它在 nuget 中可用,所以我想在我的简单项目中使用它, 但我发现缺乏文档,我找不到如何才能 在此包中使用 lucene 高级查询,就像可能的那样 以 LinqToLucene 为例:

    var query = from c in index.Customers
                where c.Like("amber") || c.CompanyName.Between("a", "d")
                where !c.CustomerId == "Jason"
    

    如果这个扩展功能不可用,那么这个项目还有什么意义呢?

  4. 如果这不是重点,我如何在 LINQ to Lucene.Net 中使用高级查询?

LINQ to Lucene 似乎处于非活动状态。撰写本文时的最后一次提交是在 2012 年 10 月,而最后一次询问该项目是否活跃的讨论帖子自同一时间段以来一直没有得到答复。

LINQ to Lucene 与实体框架有一些紧密的耦合,因此在我看来,该项目旨在索引来自 EF 的数据以进行自由文本搜索。

Lucene.Net.Linq 是一个完全独立的项目,我于 2012 年启动并一直在积极维护。该项目与 EF 或其他库没有任何耦合。它仅依赖于 Lucene.Net、Common.Logging 进行日志记录,以及 Remotion.Linq 来帮助进行 LINQ 查询解析和转换。我最初评估了为 LINQ to Lucene 做出贡献的可能性,但发现与 EF 的紧密耦合和其他一些假设使得该库不适合我的需求。

LINQ 到 Lucene 的缺点:

  1. 在 NuGet 上不可用
  2. 没有积极维护
  3. Very 你可以放入什么where clause
  4. 无论您是否愿意,都可以与 EF 耦合

Lucene.Net.Linq 优点:

  1. 积极维护
  2. 发布到 NuGet 的包(和符号!)
  3. 更好地理解复杂查询
  4. Fluent 和 Attribute API 可将属性映射到字段并控制分析、存储和索引

Lucene.Net.Linq 缺点:

  1. 文档可以更好
  2. 除了我自己的贡献之外,只有少数贡献
  3. 性能与普通 Lucene.Net 相比不清楚(没有进行太多性能测试)

该文档由项目 README 和sample https://github.com/themotleyfool/Lucene.Net.Linq/tree/master/source/Lucene.Net.Linq.Tests/Samples单元测试项目中的代码。

Lucene.Net.Linq 并不为 Lucene.Net 原生支持的每个查询提供扩展方法。然而,它确实提供了一个逃生舱口,您可以通过自己的逃生舱口Query:

var result = customers
            .Where(new TermRangeQuery("CompanyName", "A", "C", includeLower: true, includeUpper: true))
            .ToList();

它支持使用模糊匹配搜索任何索引字段:

var result = customers
            .Where(c => (c.AnyField() == "amber").Fuzzy(1.0f))
            .ToList();

并且支持简单匹配== and !=:

var result = customers
            .Where(c => c.CustomerId != "Jason")
            .ToList();

注意其含义==由给定字段的索引方式控制。如果该字段被索引为关键字,则精确匹配生效。如果字段被标记化、词干化、转换为小写等,那么==将匹配该字段中的任何术语。

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

LinqToLucene 和 Lucene.Net.Linq 之间的区别 的相关文章

  • chrome 和 firefox 中的图像损坏在 safari 中正常工作

    我的徽标在 Safari 中显示 但在 Chrome 中显示为损坏的链接 并且在 Firefox 中根本不显示 a href index html img src images logo 01 png a 我已经重新上传了很多次 甚至尝试过
  • 合并包含 Scala 中公共元素的集合的集合

    我想在 Scala 中实现一个函数 给定一组 Int 集合 该函数将合并任何包含一个或多个公共元素的包含集合 例如 给出 def mergeSets sets Set Set Int Set Set Int val sets Set Set
  • 将 C# 应用程序的引用添加到未使用 /clr 编译的 DLL?

    我正在使用 Visual Studio 2008 构建一个包含两个项目的解决方案 一个 C 控制台应用程序和一个 C DLL 我希望应用程序使用 P Invoke 从 dll 调用函数 因此 我尝试添加 dll 作为对 C 应用程序的引用
  • 创建日历事件时返回奇怪的错误消息

    我正在使用 Node js Google 客户端 API 创建一个 google 日历活动 我请求使用以下对象通过该活动创建一个会议 var conferenceData createRequest requestId uuid confe
  • 安卓。 getHistorySize 和 getHistoricalX/Y

    我已经覆盖了onTouchEvent 方法在我的View类 并试图处理EventMotion ACTION MOVE 我使用以下代码 if event getAction MotionEvent ACTION MOVE historySiz
  • 是否可以在两台机器上使用相同的 ssh 私钥/公钥对来访问 git 存储库?

    我最近设置了一个内部 git 存储库服务器 并安装了 gitosis 作为管理工具 并将其启动并运行 只读访问可通过 git 协议获得 写访问可通过使用 ssh 公钥的 gitosis 获得 我有一位开发人员已被授予使用在其桌面工作站上生成
  • 如何指定自定义 libc++

    我已经构建了 libc 并且想在编译程序时使用它 所以我有类似的东西 clang stdlib libc libc so main cpp 但这不起作用 在构建应用程序时如何使用我的自定义构建的 libc 此信息来自关于 libcxx 的
  • iPhone TCP 连接

    我想在iPhone和PC之间建立tcp连接 在 PC 上 QTspServer 正在运行并工作 已与其他客户端应用程序进行测试 这是我在 iPhone 上使用的连接方法 IBAction connectToServer id sender
  • 为什么没有像 MSG_WAITALL 这样的标志用于发送?

    旗帜MSG WAITALL可用于recv 这要求recv阻塞直到满足完整的请求 这意味着recv直到达到请求的数据量 由参数指定 才会返回len 已收到 除非发生错误或连接已关闭 为什么这样的标志不适用于send也 我认为这对于发送非常有用
  • 最好的基于 jquery 的灯箱/弹出对话框?

    我正在寻找一个基于 jquery 的弹出对话框 我们将使用它 显示静态内容页面 使用条款等 联系我们页面 已经使用 jquery 表单插件进行 ajax 提交 显示全尺寸的照片缩略图 有人可以推荐一款可以满足上述所有要求并且相当轻量级且易于
  • 如何确定 EventLog 是否已存在

    我正在使用以下行创建新的事件日志 new eventlog LogName Visual Studio Builds Source Visual Studio 我想每次都运行它 因为如果我从新计算机运行构建 我仍然希望查看事件日志 问题是
  • asp.net webforms ajax 更新 gridview

    我们有一个包含大量信息 100 行或行和列 的网格视图 我们需要提高其性能 目前 为了解决一些性能问题 我们使 gridview 没有编辑模板 而是双击一个单元格将弹出一个可用选项的下拉列表 该选项是使用 webmethods 检索并使用
  • jekyll:检查是否没有帖子

    如何查看帖子里是否没有帖子 posts folder 到目前为止 我已经尝试过 if site posts null p No posts yet p endif and if site posts nil p No posts yet p
  • 从 VB 转换为 C#

    我的任务是将解决方案从 VB 转换为 C 有 22 个项目和数百个类 所以我决定研究转换器 我最终选择了 SharpDevelop 这是一个带有转换器的 IDE 我在每个项目上都运行了它 并且有很多错误需要修复 但我应该能够检查它们并希望找
  • Sequelize 增量函数返回错误

    尝试增加我的数据库中模型实例的整数字段 这是相关代码 models Options findAll where PollId poll id name option to update then option gt option incre
  • 删除网址中的主题标签,刷新 f5 时出错(angularJs-cordova)

    我对 AngularJs 中的路由器有一些疑问 我使用了 Angular UI Router 但是当使用 locationProvider 删除 url 中的主题标签 时出现错误 如何解决这个问题 在我的模块中 config functio
  • 使用 JNI 从 C++ 调用 JAVA 方法,无参数

    请耐心听我说 我是一名 iPhone 开发人员 而整个 Android 这让我有点困惑 我有一些从 cocos2d x CCMenuItem 调用的 C 方法 因此 根据文档 我无法发送任何参数 我需要使用 android 浏览器打开一个
  • CSS 箭头在 jQuery SlideUp 或 SlideDown 动画期间隐藏

    我有一个使用 CSS 创建的顶部带有箭头的 div arrow box position relative display none background 88b7d5 border 4px solid c2e1f5 padding 20p
  • 在 ExtJS 中,如何循环菜单项?

    如何循环遍历 ExtJS 工具栏菜单中的所有项目 例如更改其图标 使用 each 方法混合系列 http dev sencha com deploy dev docs class Ext util MixedCollection按钮菜单中的

随机推荐

  • 为什么 XmlDocument.LoadXml 抛出 System.Net.WebException?

    为什么System Xml XmlDocument LoadXml方法抛出System Net WebException 这真是令人难以置信的疯狂 如果MSDN http msdn microsoft com en us library s
  • python 中的专用 @property 装饰器

    我有几个类 每个类都有许多属性 所有属性的共同点是它们应该是数字属性 这似乎是使用 python 装饰器的理想场所 但我似乎无法完全理解正确的实现是什么 这是一个简单的例子 class Junk object def init self v
  • 在 VSCode 中包含 d.ts 类型定义文件

    我已经开始使用 VSCode 0 7 0 并注意到注释说你不必添加 不再参考 引入 jsconfig json 后 您不再需要在每个文件中使用 引用 这些在 VS Code 的初始版本中是必需的 由于文件集是在 jsconfig json
  • python Anaconda 中的 Mayavi

    我安装了mayavi在 Anaconda 中使用命令 conda exe install mayavi 在 Anaconda 命令提示符中 现在 当我关闭 Spyder 时 它就不再打开了 我该如何解决 我正在使用Windows 我想展示我
  • 如何避免Python API服务器中的重复处理? [复制]

    这个问题在这里已经有答案了 假设一个函数detect primes调用起来很昂贵 我想避免使用重复的参数重复调用它 我应该怎么办 使用缓存没有帮助 因为该函数可能会在不同的请求中同时调用 当两个请求都将缓存视为空值时 两个请求都将继续执行昂
  • C++ 中的句柄是什么?

    有人告诉我 句柄有点像指针 但其实不是 它允许您保留对对象的引用 而不是对象本身 更详细的解释是什么 句柄可以是从整数索引到指向内核空间中资源的指针的任何内容 其想法是 它们提供了资源的抽象 因此您无需了解太多有关资源本身的信息即可使用它
  • 直接在 Excel 工作表上使用 ActiveX 控件的必要和充分要求是什么?

    Microsoft Office 支持文章 添加或注册 ActiveX 控件 https support office com en us article Add or register an ActiveX control 8fc743a
  • 枚举和 android 注释 intDef

    我有一个枚举 public enum AppEnums SERVICE ERROR CONNECTION ERROR 我想在 Android 注释的 intDef 中使用它 IntDef AppEnums CONNECTION ERROR
  • 在 Kotlin 中实例化对象时如何重写方法?

    在Java中 要在实例化新对象时重写方法 我们可以这样做 public ActivityTestRule
  • 如何在从 Flutter 创建文档到 Firestore 时添加时间戳 [重复]

    这个问题在这里已经有答案了 我正在编写代码以将数据从 flutter 设置到 Firestore 我想要的是添加一个用于创建数据的时间的字段 例如 createdOn Flutter 的 DateTime now 从设备获取时间 但我想获取
  • 简单的Java“新”概念问题

    编译器显示错误new Stock 2 after expect public class TestStockUI Stock stock new Stock 2 stock 0 new Stock Microsoft MSFT 15 69
  • 如何在 SQL Server 2008 上找到禁用的索引

    不久前 当我向 SQL Server 数据库中执行一些批量数据插入时 我禁用了许多索引以提高插入性能 我现在需要返回并重建 重新启用它们 不幸的是 我不确定我禁用了哪些索引 有没有办法可以查询以确定哪些索引被禁用并且应该重新启用 selec
  • CAS 与同步性能

    我已经有这个问题很长一段时间了 试图阅读大量资源并了解正在发生的事情 但我仍然无法很好地理解为什么事情是这样的 简而言之 我正在尝试测试如何CAS将执行 vssynchronized在有竞争和没有竞争的环境中 我已经把这个JMH test
  • “无法分析类:可能未加载或没有自动加载器?”

    我用一个 viewhelper 创建了 我的第一个 扩展 糟糕 出现错误 无法分析类 My Mlv ViewHelpers Format ReplacenewlinesViewHelper 可能未加载或没有自动加载器 使用中 有新闻 nam
  • ASP.Net 表单可以有 method=get 或 post 属性吗?

    我是 ASP NET 新手 我的问题是 带有 runat server 的 ASP net 表单可以有一个方法属性吗 例如
  • 我的 IIS7 网站的元数据库密钥在哪里?

    我正在尝试设置我的网站设置项目的自动 每晚 安装 我可以在命令行上指定一些安装时值 特别是 添加一个TARGETSITE值定义我的新部署将前往的网站 如何在 IIS7 安装中找到我的网站的元数据库密钥 例如 LM W3SVC 2135484
  • 测试 Windows Azure Web 应用程序的最大用户负载

    我正在对新兴 Web 技术进行一些研究 并创建了一个非常简单的 Azure 网站 该网站使用 Web 套接字和 mongo db 作为数据库 我已经设法让所有组件一起工作 现在必须对应用程序执行负载测试 主要标准是应用程序可以支持的最大用户
  • Babel 5 插件正在使用不受支持的 Babel 版本运行。尝试更新 babel-relay-plugin

    Doing Lynda 构建和部署全栈 React 应用程序教程 并卡在某个点上 出现以下错误 src index js Error BABEL Users kukodajanos Workspace ticket src index js
  • QueryOver 上的 GroupBy SqlFunction

    我有一个包含所有不同帐户名称前缀 a z 的列表 我使用这些前缀获取的 var accounts this SessionManager GetActiveSession QueryOver
  • LinqToLucene 和 Lucene.Net.Linq 之间的区别

    Are the LinqToLucene http linqtolucene codeplex com 和Lucene Net Linq https github com themotleyfool Lucene Net Linq项目不同