Lucene 模糊搜索客户名称和部分地址

2024-01-29

我浏览了所有现有的问题帖子,但找不到相关的内容。

我有数百万条记录,包括个人名字、姓氏、地址 1、地址 2、国家/地区代码、出生日期 - 我想每天使用上述文件检查我的客户列表(我的客户列表也会每天更新,并且文件也每天更新)。

对于名字和姓氏,我想要模糊匹配(可能是 lucene fuzzyquery/levenshtein 距离 90% 匹配),对于剩余字段国家/地区和出生日期,我想要精确匹配。

我是 Lucene 的新手,但通过查看帖子数量,看起来这是可能的。

我的问题是:

  • 我应该如何索引我的输入文件?我需要在 FN、LN、国家、DOB 的组合上建立索引并使用该索引进行搜索
  • 我这里如何使用Lucene的模糊查询?

还有其他方法可以实现相同的功能吗?


Rushik,这里有一些想法:

  • 考虑使用Solr http://lucene.apache.org/solr/。开始使用它比裸露的 Lucene 容易得多。
  • 构建文件的 Lucene/Solr 索引。如果您使用多值字段或两个不同的地址字段,则每个客户一个文档似乎就足够了。
  • 每个人都有唯一的 ID 吗?要使用 Solr,您需要一个。在 Lucene 中,您无需使用唯一 id 即可逃脱。
  • 将国家/地区代码存储为“关键字”。如果您只需要出生日期完全匹配,您也可以这样做。对于范围查询,您将需要另一种表示形式。
  • 我假设您的客户列表比文件小。一个可能的策略是每天索引文件中的更改(这里唯一的 id 非常方便 - 否则您需要通过查询删除,这可能会错过标记)。然后您可以优化索引,然后搜索更新的客户列表。
  • 你所描述的是一个布尔查询 http://lucene.apache.org/java/3_0_1/api/core/org/apache/lucene/search/BooleanQuery.html,其子句是名字和姓氏的模糊查询以及其他字段的术语查询。您可以通过编程方式或使用查询解析器 http://lucene.apache.org/java/3_0_2/queryparsersyntax.html.
  • 考虑使用 soundex 作为名称,如上所述here http://sujitpal.blogspot.com/2007/12/spelling-checker-with-lucene.html.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Lucene 模糊搜索客户名称和部分地址 的相关文章

  • 从字符串列表中找到与给定字符串匹配的最佳子集

    我有一根绳子 s mouse 和一个字符串列表 sub strings m o se e 我需要找出与 s 匹配的列表的 sub strings 的最佳和最短匹配子集是什么 做这个的最好方式是什么 理想的结果是 m o se 因为它们一起拼
  • Lucene 的 Ruby 替代品

    我经常听说 Lucene 它是 Java 中最好的搜索引擎库之一 Ruby 有类似 同样强大 的库吗 嗯 有Ferret http ferret davebalmain com trac 这是 Lucene 到 Ruby 的端口 此外 Lu
  • Solr 查询无法正常工作

    我不知道出了什么问题 这实际上是一个非常简单的查询 在我的 Solr 搜索中不起作用 http IP ADDRESS solr CORE NAME select indent on q Bangalore wt json 我的数据库中有超过
  • Umbraco 检查 - 查询问题

    我使用 检查 检索的对象具有以下数据值 图片链接 https i stack imgur com 8sUOb jpg为了更方便查看 Icon icon shopping basket alt 2 color red IndexType co
  • 用于索引和搜索的 Lucene 分析器

    我有一个正在使用 Lucene 建立索引的字段 如下所示 Field name hungerState index Index TOKENIZED store Store YES public HungerState getHungerSt
  • 如何为 PhraseQuery 搜索设置 Lucene 标准分析器?

    Lucene 上的各种教程给我的印象是 如果我这样做 IndexWriter writer new IndexWriter indexPath new StandardAnalyzer Version LUCENE CURRENT true
  • 如何保持Lucene索引与Mysql数据库同步?

    我正在尝试利用 Lucene 在我的应用程序中开发全文搜索 这需要基于我的 mysql 数据库构建索引 我想知道如何使这些索引与数据库保持同步 我想出了办法 1 在业务逻辑中紧密地添加额外的代码来更新搜索索引 2 定期运行单独的任务来重建索
  • 在哪里可以找到 Apache Lucene/Solr 的性能基准

    是否有任何针对大型数据集上 Lucene Solr 性能基准的链接 资源 500GB 5TB以上范围的数据集 Thanks Lucene 提交者 Mike McCandless 运行基准 http people apache org mik
  • 如何在 Lucene 6 中对数字字段进行排序

    我想根据数字字段对搜索结果进行排序 在下面的示例代码中 我想根据 年龄 字段进行排序 我从使用以下答案开始 如何在 Lucene 6 中对 IntPont 或 LongPoint 字段进行排序 https stackoverflow com
  • Elasticsearch 6.2 / Kibana查询:一字段必须存在,一字段不能存在

    我的愿望是搜索 field 存在且 fields b 不存在的文档 有没有办法使用 Kibana 中的 Lucene 查询语法 Kibana 的 发现 部分中的 搜索 字段 来执行此操作 我尝试过使用 缺失 字段 b没有成功 exists
  • 包 org.apache.commons.io 不存在错误

    我正在使用 ant 编译器编译 java 文件 我收到以下错误 包 org apache commons io 不存在错误 我下载了 apache Commons IO 二进制文件并将 jar 文件粘贴到 C Program Files J
  • 如何从 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
  • r中的模糊字符串匹配

    我有 2 个数据集 每个数据集超过 100K 行 我想根据匹配一列 电影标题 的模糊字符串以及使用发布日期来合并它们 我提供了下面两个数据集中的样本 数据集 1 itemid userid rating time title release
  • openNLP 与 Solr 集成时出现异常

    我正在尝试将 openNLP 与 Solr 6 1 0 集成 我配置了架构和 solrconfig 文件 详细信息请参见 wiki 链接 https wiki apache org solr OpenNLP https wiki apach
  • 如何添加到 OrientDB 中的空间索引?

    我正在使用工作室的 OrientDB 2 0 我使用文档中的代码成功创建了 Lucene 空间索引 CREATE class Place extends V CREATE property Place name string CREATE
  • 我们可以同时使用拼音标记和同义词吗?

    我正在尝试同时启用语音分析器和同义词 这似乎不起作用 它们一起使用有错吗 在下面的实现中 我希望使用同义词转换搜索查询 然后使用语音分析器来检索结果 但我的同义词在这里完全被忽略了 如果我在创建索引时删除语音分析器 那么同义词就可以正常工作
  • Solr:在带有空格的字符串上使用通配符

    我的问题与这里讨论的问题基本相同 带空格的 Solr 通配符查询 https stackoverflow com questions 10023133 solr wildcard query with whitespace 但这个问题没有得
  • cursorMark是无状态的以及它如何解决深度分页

    作为指定here https cwiki apache org confluence display solr Pagination of Results光标标记是无状态的 但我不明白它是如何解决无状态的深度分页问题的 solr 是否按唯一
  • 在 Solr 中实现术语关联挖掘的最简单方法是什么?

    关联挖矿似乎为检索提供了良好的结果相关术语在文本语料库中 有很多关于这个主题的著作 其中包括著名的LSA http en wikipedia org wiki Latent semantic analysis方法 挖掘关联最直接的方法是构建

随机推荐

  • 蓝牙设备发现错误

    我尝试使用以下代码来发现蓝牙设备 import java io BufferedReader import java io IOException import java io InputStreamReader import java u
  • ElasticSearch 和 Nest 过滤不起作用

    我运行一个查询 返回 10 个结果 我的文档中有一个名为 Type 的属性 对于某些记录 此属性的值为空字符串 对于其他一些记录 该属性的值为 AudioAlbum 或 AudioRington 我想做两件事 1 从搜索结果中排除其 Typ
  • SwiftUI 中的 Alert + ProgressView(活动指示器)

    Is there any way to add Activity View Indicator into SwiftUI Alert somewhere I m just curious because I haven t found an
  • 将 tf.distribute 策略与 tf.keras 模型子类化结合使用

    我目前有一个 tf keras 模型子类 但无法使用 GPU 分发策略 尽管 Tensorflow 网站上声明我可能收到一个错误 告诉我相反的情况 我发现的一种解决方案是将模型包装在 tf keras models Model 中 但这导致
  • 重新组装分段上传中生成的文件块

    我正在使用优秀的 flow js 库来处理文件上传 这是一个可恢复的 HTML5 上传 会在服务器上生成一堆必须重新组装的块 例如 foo mov 可能会变成 timestamp foomov 1 timestamp foomov 2 ti
  • 发布时的 GitHub Actions 创建的工作流触发器不起作用

    我有一个GitHub 操作 https docs github com en actions在我的存储库的主分支上实现的工作流程 它创建了一个新的release https docs github com en github adminis
  • deque::insert() 在索引处?

    我如何insert 一堆物品到中间deque在线性时间内 我要插入的项目是not可通过 STL 风格的迭代器访问 有一个deque insert iterator pos const T x 函数占据位置pos as deque itera
  • 如何在 Three.js 中根据对象位置和旋转来正确旋转 raycaster

    我有 8 个从 Object3D 到不同方向的光线投射器用于碰撞检测 我想根据对象旋转来旋转它们指向的方向 我已经遵循了解决方案here https github com mrdoob three js issues 1606 光线投射器开
  • CUDA 中的稀疏矩阵向量乘法

    我正在尝试在 GPU 上实现矩阵向量乘法 使用 CUDA 在我的 C 代码 CPU 中 我将矩阵加载为密集矩阵 然后使用 CUDA 执行矩阵向量乘法 我还使用共享内存来提高性能 知道我的矩阵是稀疏矩阵 如何以有效的方式加载矩阵 下面是我的
  • 如何通过 *ngFor 在 Angular 2 TypeScript 前端显示 json 数组

    下面是 angular2 简单的前端页面 table class table tr th title th th description th tr tr td notes title td td notes body td tr tabl
  • MySQL:使用附加哈希字段的唯一文本字段

    在我的 MySQL 数据库中 我有一个表定义如下 CREATE TABLE mytablex cs id mediumint 8 unsigned NOT NULL AUTO INCREMENT tag varchar 6 COLLATE
  • MySQL JOIN 行(如果存在)否则填充 NULL

    我有两张人名和财产表 有些还没有条目 我想创建所有人及其属性 如果可用 的完整列表 否则将他们与属性 NULL 一起列出 这是我的简化示例 names id name 1 Jon 2 Peter 3 Sam 4 Bruce 特性 names
  • 在多选模式下启用/禁用列表视图中的项目选择

    我在多选模式下为上下文菜单注册了一个列表视图 private void initListViewForContextMenu log d FilesFragment initListViewForContextMenu ListView l
  • 自定义 jqGrid 中的添加/编辑对话框

    抱歉 我不能发布图片 我太新了 在 jqGrid 添加 编辑对话框中 我想根据之前所做的选择加载可选项目的列表 在上图中 应根据条件选择中选择的值加载值选择 我相信要走的路线是使用 editoptions 对象中的 dataurl 但我在这
  • 找不到 javafx.controls JavaFX 11 / JDK 11.0.1 [重复]

    这个问题在这里已经有答案了 我正在使用 IntelliJ 我已经尝试过所有其他似乎对其他人都有效的解决方案 我收到一个错误 Caused by java lang IllegalAccessError class com sun javaf
  • 使用泛型参数关闭

    我在将以下函数编写为闭包时遇到问题 func myfunc
  • 删除 VSCode PHP 调试中的字符限制

    在 PHP 中进行调试并使用左侧的变量窗格时 将鼠标悬停在该变量 对象上时可以看到的字符数是有限的 无论如何 是否可以查看该变量的完整有效负载或除了必须使用之外的任何解决方法file put contents每次我想看到一个大的变量值 将变
  • jQuery data() 返回未定义,attr() 返回整数

    我有以下代码 alert embellishment data embellishmentId alert embellishment attr data embellishmentId 第一个警报返回undefined 而第二个警报返回一
  • 如何在 Perl 中异步运行系统命令?

    我目前有一个 Perl 脚本 它在系统上运行外部命令 收集输出 并根据返回的内容执行一些操作 现在 这是我运行它的方式 其中 cmd 是带有命令设置的字符串 output cmd 我想更改此设置 以便如果命令挂起并且在很长时间后没有返回值
  • Lucene 模糊搜索客户名称和部分地址

    我浏览了所有现有的问题帖子 但找不到相关的内容 我有数百万条记录 包括个人名字 姓氏 地址 1 地址 2 国家 地区代码 出生日期 我想每天使用上述文件检查我的客户列表 我的客户列表也会每天更新 并且文件也每天更新 对于名字和姓氏 我想要模