gpt4 book ai didi

linq-to-lucene - LinqToLucene和Lucene.Net.Linq之间的区别

转载 作者:行者123 更新时间:2023-12-04 03:51:24 25 4
gpt4 key购买 nike

  • LinqToLuceneLucene.Net.Linq项目不同吗?
  • 它们各自的优缺点是什么?
  • 因为我发现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"

    如果此扩展功能不可用,那么该项目的目的是什么?
  • 如果不是重点,我如何在LINQ中使用Lucia.Net的高级查询?
  • 最佳答案

    LINQ to Lucene似乎没有激活。撰写本文时的最后一次提交是在2012年10月,而有关该项目是否处于事件状态的最后一个讨论帖子自同一时间段以来一直未得到答复。
    LINQ to Lucene与Entity Framework紧密相关,因此在我看来,该项目旨在对EF数据进行索引,以进行自由文本搜索。
    Lucene.Net.Linq是一个完全独立的项目,我于2012年启动并一直积极维护。该项目与EF或其他库没有任何耦合。它仅依赖于Lucene.Net,Common.Logging进行日志记录,并依赖Remotion.Linq进行LINQ查询解析和翻译。我最初评估了为LINQ贡献给Lucene的可能性,但是发现与EF的紧密耦合以及其他一些假设使该库不适合我的需求。
    LINQ到Lucene的缺点:

  • 在NuGet上不可用
  • 没有积极维护
  • 您可以在where子句中放入的内容非常limited
  • 是否要与EF耦合

  • Lucene.Net.Linq的优点:
  • 积极维护
  • 发布到NuGet的软件包(和符号!)
  • 更好地理解复杂查询
  • Fluent和Attribute API,用于将属性映射到字段并控制分析,存储和索引

  • Lucene.Net.Linq缺点:
  • 文档可能更好
  • 我自己的
  • 之外只有很少的贡献
  • 与 Vanilla Lucene.Net的性能不清楚(尚未进行太多性能测试)

  • 这样的文档由单元测试项目中的项目README和 sample代码组成。
    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();
    它支持与 ==!=的简单匹配:
    var result = customers
    .Where(c => c.CustomerId != "Jason")
    .ToList();
    注意 ==的含义由给定字段的索引方式控制。如果将该字段索引为关键字,则精确匹配生效。如果字段被标记化,词干化,转换为小写字母等,则 ==将匹配该字段中的任何术语。

    关于linq-to-lucene - LinqToLucene和Lucene.Net.Linq之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25300203/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com