Lucene.net 模糊短语搜索

2023-12-20

我自己已经尝试了相当长的一段时间,并在网络上到处寻找 - 但一直无法找到任何通过 Lucene.NET 2.9.2 进行模糊短语搜索的示例。 ( C# )

是否能够建议如何详细执行此操作和/或提供一些示例代码 - 我将非常感谢任何帮助,因为我完全陷入困境?


我假设您已经运行 Lucene 并创建了一个包含某些字段的搜索索引。因此,让我们进一步假设:

var fields = ... // a string[] of the field names you wish to search in
var version = Version.LUCENE_29; // your Lucene version
var queryString = "some string to search for";

一旦掌握了所有这些,您就可以继续在多个字段上定义搜索查询,如下所示:

var analyzer = LuceneIndexProvider.CreateAnalyzer();
var query = new MultiFieldQueryParser(version, fields, analyzer).Parse(queryString);

也许您已经做到了这一点,只是错过了模糊的部分。我只是添加一个波浪号~到其中的每一个字queryString告诉 Lucene 对 queryString 中的所有单词进行模糊搜索:

if (fuzzy && !string.IsNullOrEmpty(queryString)) {
    // first escape the queryString so that e.g. ~ will be escaped
    queryString = QueryParser.Escape(queryString);
    // now split, add ~ and join the queryString back together
    queryString = string.Join("~ ",
        queryString.Split(' ', StringSplitOptions.RemoveEmptyEntries)) + "~";
    // now queryString will be "some~ string~ to~ search~ for~"
}

这里的关键点是 Lucene 仅对以 a 结尾的术语使用模糊搜索~。发现了这个和一些更有用的信息http://scatteredcode.wordpress.com/2011/05/26/performing-a-fuzzy-search-with-multiple-terms-through-multiple-lucene-net-document-fields/ http://scatteredcode.wordpress.com/2011/05/26/performing-a-fuzzy-search-with-multiple-terms-through-multiple-lucene-net-document-fields/.

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

Lucene.net 模糊短语搜索 的相关文章

  • ElasticSearch 全文搜索

    我尝试在elasticsearch java api 中使用正则表达式运行全文搜索 我的过滤器是这样的 FilterBuilder qFilter FilterBuilders regexpFilter all text 但它只匹配一个单词
  • elasticsearch - 具有多个条件的术语过滤器

    我想实现一次对ES的搜索具有2个或更多条件的多个值 For Eg customer index has 2 fields userid and order 我使用下面的查询来搜索与这两个字段匹配的结果 query filtered quer
  • Java、Lucene:在Java中设置IndexWriter的锁定超时。

    我正在致力于将 Lucene 与我们基于 Spring MVC 的应用程序集成 目前我们已经可以使用它了 但是我们很少得到cannot obtain lock错误 之后我必须手动删除锁定文件才能正常工作 如何在 Java 中设置锁定索引的超
  • 如何从 Solr 查询中获取 tf 和 idf 分数?

    以下 Solr 文档 https cwiki apache org confluence display solr Function Queries https cwiki apache org confluence display sol
  • 仅根据lucene中term出现次数较多的文档来计算分数

    我开始研究基于 lucene net 引擎的简历检索 文档 组件 它工作得很好 它会获取文档并根据 VSM 背后的理念是 查询词出现在 a 中的次数 文档相对于数量 该术语出现在所有 集合中的文档越多 该文件的相关内容是 询问 Lucene
  • 每个领域都有不同的分析仪

    如何为使用 Lucene 索引的文档中的每个字段启用不同的分析器 例子 RAMDirectory dir new RAMDirectory IndexWriter iw new IndexWriter dir new StandardAna
  • Lucene 上打开的文件太多错误

    我正在进行的项目是对一定数量的数据 长文本 建立索引 并将它们与每个时间间隔 大约 15 到 30 分钟 的单词列表进行比较 一段时间后 比如说第 35 轮 在开始索引第 36 轮的新数据集时 发生了此错误 ERROR 2011 06 01
  • lucene:如何添加不重复的文档

    就我而言 插入 lucene 索引的每个文档都有其唯一的 ID 当向lucene索引添加新文档时 如果该文档已经存在于索引中 则不应将该文档插入到索引中 如何实施这一战略 我想我应该先用docId搜索文档 如果lucene找不到该文档 那么
  • 更改 SOLR 默认连接

    我正在使用嵌入 SOLR 的应用程序 SOLR 在 Tomcat 的 webapp 区域中像一场战争一样运行 是否有 SOLR 配置允许我切换搜索的默认 SOLR 行为以假定 AND 而不是 OR 作为连接运算符 在您的模式文件中添加 或修
  • Solr 中的多值字段排序

    我有一个 Solr 索引 将每个产品的价格存储在多值字段中 我需要按价格对结果集进行排序 其中价格从低到高 从高到低 我尝试对价格进行排序 它显示错误您无法对 multivalued True 字段进行排序 下面是我的 solr XML
  • 对 solr 搜索结果进行排序。给出错误无法对多值字段进行排序:名称

    我对 Apache Solr 搜索比较陌生 我正在尝试对 Solr 查询中的结果集进行排序 查询 名称 abc AND 隐藏 false sort name desc 它显示错误 无法对多值字段进行排序 名称 Solr版本是 7 2 1 如
  • 了解elasticsearch如何在内部存储日期

    我想了解 ES 如何在其索引内部存储日期值 它会转换为 UTC 吗 我有一个日期类型的字段 t 这是映射 t type date 现在 当我向 ES 插入 添加文档时 它如何存储在索引中 t 1427700477165 从 Date now
  • 在具有多个 Web 服务器的现有 .NET / SQL Server 堆栈上实施 Lucene

    我想考虑使用 Lucene 为我当前管理的网站提供全文搜索解决方案 该网站完全基于 SQL Server 2008 C NET 4 技术构建 我要索引的数据实际上非常简单 每个记录只有几个字段 并且只有其中一个字段实际上是可搜索的 我不清楚
  • 随着索引和文档数量恒定,elasticsearch 批量索引会随着时间的推移而变慢

    我遇到了使用 NET NEST 客户端和 ElasticSearch 进行批量索引的性能随着时间的推移 索引数量和文档数量恒定而降低的情况 我们正在奔跑ElasticSearch Version 0 19 11 JVM 23 5 b02在具
  • 如何在 Lucene 5 中获取 Span Term 查询的匹配范围?

    在 Lucene 中 要获取术语周围的单词 建议使用跨度查询 有很好的演练http lucidworks com blog accessing words around a positional match in lucene http l
  • cursorMark是无状态的以及它如何解决深度分页

    作为指定here https cwiki apache org confluence display solr Pagination of Results光标标记是无状态的 但我不明白它是如何解决无状态的深度分页问题的 solr 是否按唯一
  • Solr/Solrj 分页

    我正在创建的 Web 应用程序中使用 solr 和 solrj 来实现索引和搜索功能 我的请求处理程序在 solrconfig xml 中配置如下
  • Elasticsearch:带有停用词消除功能的带状疱疹

    我正在尝试实现一个 Elasticsearch 映射来优化大量文本中的短语搜索 根据中的建议本文 http www elasticsearch org blog searching with shingles 我使用 shingle 过滤器
  • 匹配拉丁脚本中包含少于 10 个单词的两个字符串的最佳算法是什么

    我正在比较歌曲标题 使用拉丁字母 尽管并不总是 我的目标是一种算法 如果两个歌曲标题看起来相同 则给出高分 如果它们没有任何共同点 则给出很低的分数 现在我已经必须使用 Lucene 和 RAMDirectory 编写代码 Java 来编写
  • 在 Lucene.NET 中索引 Json 对象数组

    我正在努力将任意 json 对象放入 Lucene NET 索引中 给定的对象可能如下所示 name Tony age 40 address street Weakroad number 10 floor 2 door Left skill

随机推荐

  • C 中 int、float 和 double 之间的转换

    我不太明白 C 中的转换 谁能帮我解决书中的一个问题计算机系统 程序员的视角 https rads stackoverflow com amzn click com 9332573905 我们生成任意整数值 x y 和 z 并将它们转换为
  • nginx 返回 400 代码时添加标头

    我正在开发一个带有 laravel 后端的 ember js 应用程序 如果出现问题 我会尝试使用 php 返回 http 错误代码 我注意到 当发出 PUT 请求并返回 400 状态代码时 我的 CORS 标头会被我的 conf 文件忽略
  • postgresql - sql - “true”值的计数

    myCol true true true false false null 在上表中 如果我这样做 select count count myCol I get 6 5 I get 5因为它不计算空条目 我如何计算真值的数量 示例中为 3
  • 将面板数据从长到宽重塑[重复]

    这个问题在这里已经有答案了 我想将面板数据从长格式转换为宽格式 我知道还有很多其他问题涉及这个主题 但是 我不相信他们中的任何一个都有我正在寻找的确切答案 my df lt data frame ID rep c A B C 3 TIME
  • Kafka-Connect:分布式模式下创建新的连接器就是创建新的组

    我目前正在使用 confluence 3 0 1 平台 我试图在两个不同的工作人员上创建 2 个连接器 但尝试创建一个新的连接器正在为其创建一个新组 Two connectors were created using below detai
  • 如何声明 Blazor 组件

    更新 这就是我想要完成的任务 我有一个组件 ItemTagBox razor
  • Fabric/Python:AttributeError:“NoneType”对象没有属性“partition”

    Fabric中有以下功能用于添加用户帐户 脚本 fab l Python source code Available commands OS TYPE adduser createcmd Create command line for ad
  • 适用于 iOS 的 Flutter 应用程序在使用 Firebase 启动时崩溃

    我研究了这么久 还没有找到解决我的问题的方法 我正在使用 flutter 构建一个 iOS 应用程序 并将该应用程序从 Windows 计算机移至虚拟 macOS 现在 当我尝试在 Iphone 模拟器 Iphone 11 pro Max
  • Android 上 libjpeg-turbo 的集成或构建说明

    在互联网上可以找到各种提到 Android 版 libjpeg turbo 的页面 example http comments gmane org gmane linux linaro devel 6967 他们都指向存储库here htt
  • 如何仅在 Swift 中将一个视图控制器的方向锁定为纵向模式

    因为我的应用程序支持所有方向 我想仅将纵向模式锁定到特定的 UIViewController 例如假设它是选项卡式应用程序 并且当登录视图以模态方式出现时 我只希望登录视图仅处于纵向模式 无论用户如何旋转设备或当前设备方向如何 当你有一个复
  • 模板智能感知

    我主要使用 C 而 VSCode 中缺少的一件事是 Angular 2 模板中的 IntelliSense 我发现这个问题有解决办法here https github com microsoft typescript issues 6508
  • 用于理解 OpenGL 中的视图、投影、“虚拟相机”或一般图形的资源 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我注意到大多数资源要么假设您已经了解很多 要么假设您了解专业水平的数学 要么假设您将找到其他资源来填补空
  • 如何从 Python 以隐身模式打开 chrome

    这在 powershell 中有效 Start Process chrome exe ArgumentList incognito www foo com 如何通过 Python 实现这一点 使用网络浏览器在 chrome 中打开隐身模式的
  • 在 jQuery mousedown 处理程序中添加覆盖层后,Internet Explorer 泄漏单击事件

    In a mousedowndiv 的事件处理程序创建另一个新 div 并将其附加到主体 这个新的div有position fixed 也可以是position absolute 并且具有 100 宽度和 100 高度 因此它立即覆盖触发鼠
  • 更新 Flutter 项目中的 Gradle

    我有这个项目Flutter 但由于 Gradle 版本的原因 我已经有几周无法构建 apk 了 我已经尝试了所有方法 但 Flutter 总是返回以下错误 我已经安装了我发现的每个更新 尽管它显示 Gradle 版本是 4 10 2 颤动构
  • 读取 Excel Open XML 会忽略空白单元格

    我正在使用此处接受的解决方案 https stackoverflow com questions 3321082 from excel to datatable in c with open xml将 Excel 工作表转换为数据表 如果我
  • 将主机名解析为 IP 地址

    我开发了一个客户端 服务器模拟应用程序 我在两台不同的 Windows XP 计算机上部署了客户端和服务器 不知何故 客户端无法向服务器发送请求 我尝试了以下选项 使用 IP 地址从客户端成功 Ping 通服务器计算机 使用 IP 地址成功
  • 访问者模式 - 添加新的 ConcreteElement 类很难吗?

    我读了一本关于访客模式的书 它给出了与中相同的类图oodesign 的网站 http www oodesign com visitor pattern html 它说添加新的 ConcreteElement 类很困难 但我不明白为什么 据我
  • CORS 请求 - 为什么未发送 cookie?

    我有一个跨域 AJAX GET 它已成功预检 但 cookie 未附加到 GET 请求 当用户单击登录按钮时 会发出 POST 来使用户登录 这可以在跨域中正常工作 JavaScript 是 ajax signin url type POS
  • Lucene.net 模糊短语搜索

    我自己已经尝试了相当长的一段时间 并在网络上到处寻找 但一直无法找到任何通过 Lucene NET 2 9 2 进行模糊短语搜索的示例 C 是否能够建议如何详细执行此操作和 或提供一些示例代码 我将非常感谢任何帮助 因为我完全陷入困境 我假