在 lucene 中搜索 UUID 不起作用

2024-04-15

我有一个 UUID 字段,以以下格式添加到我的文档中:372d325c-e01b-432f-98bd-bc4c949f15b8。但是,当我尝试通过 UUID 查询文档时,无论我如何尝试转义表达式,它都不会返回它们。例如:

+uuid:372d325c-e01b-432f-98bd-bc4c949f15b8
+uuid:"372d325c-e01b-432f-98bd-bc4c949f15b8"
+uuid:372d325c\-e01b\-432f\-98bd\-bc4c949f15b8
+uuid:(372d325c-e01b-432f-98bd-bc4c949f15b8)
+uuid:("372d325c-e01b-432f-98bd-bc4c949f15b8")

甚至使用 TermQuery 完全跳过 QueryParser,如下所示:

new TermQuery(new Term("uuid", uuid.toString()))

Or

new TermQuery(new Term("uuid", QueryParser.escape(uuid.toString())))

这些搜索都不会返回文档,但如果我搜索 UUID 的部分内容,它将返回文档。例如,这些将返回一些内容:

+uuid:372d325c
+uuid:e01b
+uuid:432f

我应该如何索引这些文档,以便可以通过它们的 UUID 将它们拉回?我考虑过重新格式化 UUID 以删除连字符,但尚未实施。


我让它工作的唯一方法是使用 WhitespaceAnalyzer 而不是 StandardAnalyzer。然后使用 TermQuery 像这样:

IndexWriterConfig config = new IndexWriterConfig(Version.LUCENE_36, new WhitespaceAnalyzer(Version.LUCENE_36))
            .setOpenMode(IndexWriterConfig.OpenMode.CREATE_OR_APPEND);
writer = new IndexWriter( directory, config);

然后搜索:

TopDocs docs = searcher.search(new TermQuery(new Term("uuid", uuid.toString())), 1);

WhitespaceAnalyzer 阻止 Lucene 用连字符分割 UUID。另一种选择可能是消除 UUID 中的破折号,但使用 WhitespaceAnalyzer 也能满足我的目的。

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

在 lucene 中搜索 UUID 不起作用 的相关文章

  • 使用 Jersey Client 忽略自签名 ssl 证书 [重复]

    这个问题在这里已经有答案了 我正在使用 Jersey 客户端库对 jboss 上运行的其余服务运行测试 我使用自签名证书在服务器上正确设置了 https 在本地主机上运行 但是 每当我使用 https url 运行测试时 都会收到以下错误
  • 检索和设置 IntelliJ IDEA 插件开发的拆分窗口设置

    我正在编写一个 IntelliJ IDEA 插件 用于保存打开选项卡的会话 称为选项卡会话 https github com alp82 idea tabsession 这个问题是后续问题IntelliJ IDEA 插件开发 保存选项卡组
  • 如何安装 C++ 的 VOCE?

    我正在尝试安装 VOCE api 它是为 C 和 Java 构建的语音识别 API 这是我第二次使用外部 C 库 也是第一次使用 Java C api 语音链接 http voce sourceforge net http voce sou
  • Swagger 3.0.0:如果没有 SwaggerConfig 和 @Profile,则无法在生产中禁用

    我正在从 2 x 升级到 SpringFox Swagger 3 0 0 它引入了 Spring Boot 启动器springfox boot starter消除了对基于 2 x 的需要的依赖性SwaggerConfig NO LONGER
  • Spring Rest-API - 403 禁止错误响应

    我是 Spring 新手 我正在编写 REST API 我收到 403 删除 放置禁止错误 以下是我正在处理的示例 RequestMapping value noteId method RequestMethod PUT public Re
  • 在 Eclipse 中跨文件搜索注释掉的代码

    有没有一种快速方法可以在 Eclipse 中查找 Java 文件中所有注释掉的代码 也许是搜索中的任何选项 或者任何可以执行此操作的附加组件 它应该只能找到被注释掉的代码 而不是普通的注释 在 Eclipse 中 我只是在打开正则表达式复选
  • 如何限制用户键入时 JTextPane 中的字符数 (Java)

    我需要不允许在输入 X 后输入任何字符 我需要在输入 X 个字符后发出蜂鸣声 我知道如何在用户按 Enter 键后执行此操作 但我需要在用户按 Enter 键之前执行此操作 我从 Oracle 站点找到的方法是将 DocumentSizeF
  • 如何使用 Gradle 2.10 将 ANTLR 词法分析器语法导入到另一个语法中?

    我一直在和 Terence Parr 一起学习 ANTLR 4权威的 ANTLR 4 参考 到目前为止我一直在使用 Gradle 2 10 及其内置 ANTLR 插件进行跟踪 然而 我在获取一些我从第 4 章第 38 41 页改编的代码以使
  • UnsupportedOperationException:特权进程中不允许使用 WebView

    我在用android sharedUserId android uid system 在我的清单中获得一些不可避免的权利 从 HDMI 输入读取安卓盒子 http eweat manufacturer globalsources com s
  • splitByWholeSeparatorPreserveAllTokens 和 split 之间的区别

    有什么区别StringUtils splitByWholeSeparatorPreserveAllTokens and String split With splitByWholeSeparatorPreserveAllTokens 我们可
  • 如何使用java避免Mysql数据库中的“数据因列被截断”?

    在我的 Java 程序中 Hibernate Bean 类定义一列 例如 TimtableVO java Column name REPEAT DAYS private WeekdayType repeatDays hear Weekday
  • Stream#limit 返回的元素是否可以少于预期?

    如果流s下面至少有n元素 流在什么情况下sLimit可能少于n元素 如果有的话 Stream sLimit s limit n 提问原因 在这个答案 https stackoverflow com a 28082107 829571 我读到
  • java中main的返回类型

    我想知道为什么java中main方法只有void返回类型 public static void main String args 为什么main方法除了void之外没有其他返回类型 Thanks 简短的回答是 因为这就是语言规范 http
  • 如何加快 jar 签名者的速度?

    我使用 ant 来签署我的 jars 以进行网络启动部署 Ant signjar 在 Web 启动签名时非常慢 如何加快签名过程 我找到了一种可能的解决方案 早些时候 在构建脚本 ant signjar 中 按顺序调用所有 jar 我们使用
  • 创建一个 int 类型的随机数组。爪哇

    我需要创建一个随机的 int 数组 并按我自己的类对其进行排序 这是我制作数组的地方 public class MyProgram9 public static void main String args int list new int
  • 从 AlertDialog 返回值

    我想构建一个函数来创建 AlertDialog 并返回用户输入的字符串 这是我用于创建对话框的函数 如何返回该值 String m Text private String openDialog String title AlertDialo
  • Restful WS 中的 WSDL 等价物是什么?如果没有,消费者如何生成所需的客户端类?

    比如说 我在java中有生产者 在 net中有消费者 生产者有一个方法 需要 员工作为方法参数并在数据库中创建员工 对于基于 SOAP 的 ws dot net 客户端将调用 WSDL 并创建存根 包括 dot net 中的员工数据表示 现
  • 在Java程序中计算zip文件的md5哈希值

    我有一个 zip 文件 在我的 Java 代码中我想计算 zip 文件的 md5 哈希值 有没有我可以用于此目的的 java 库 一些例子将非常感激 谢谢 几周前我通过这篇文章做到了这一点 http www javalobby org ja
  • Java中如何限制文件大小

    我正在我的应用程序中创建一个文件 并继续向该文件中写入一些内容 但是当我的文件达到一定大小 比如说 100 行 后 我想删除第一行并将新行写入底部 要求是我的文件应该受到限制 但它应该保留我写入文件的最新内容 请告诉我在Java中是否可行
  • 安装solr并索引mysql

    任何人都可以帮助我安装 solr 并将其配置到 mysql 表 我已经尝试了几乎所有教程 我尝试了 Jetty 也尝试了 tomcat 仍然收到诸如数据处理程序未定义或找不到 solr 之类的错误 已经一周了 我我一整天都在努力 为了让 s

随机推荐

  • java中的子包类可以访问父包类吗?

    在java父包类中可以从子包类访问吗 请给我解释一下吗 例子 包 A A1 A2 包含类 sub 包A包含类sup 有没有办法从 sub 访问 super 请解释一下 我尝试导入它不起作用 例子 在程序目录结构之前 package1 包含
  • 为什么每次保存文件时 vim 都会创建一个新文件?

    我有一个名为test test mypc ls i 4982967 test 然后我使用vim更改其内容并输入 w来保存它 它现在有一个不同的索引节点 test mypc ls i 4982968 test 这意味着它已经是一个不同的文件了
  • 如何使用 LINQ to Entities 包含另一个表中的一个特定行

    我有一个包含这两个表的数据库 Customer and CustomerStatus CustomerStatus是所谓的只读表 对客户状态的所有更改都会导致插入到该表中 当前客户状态可通过以下方式找到CustomerStatus Stat
  • 无法显示 Firebase 存储中的图像

    我正在使用新的 Firebase 存储并上传图像 然后获取下载网址 将下载网址转换为字符串后 我使用它在我的活动中显示 但它只显示下载网址 我使用下面的代码上传图像并获取下载网址 dialogBuilder setTitle Add Sho
  • 容器 div 标签的 100% 高度和宽度不起作用

    我的网页布局如下 以下 CSS 代码在 Internet Explorer 9 中为我提供了 100 的高度和宽度 虽然同样在 FF 和 Chrome 中为我提供了 100 的宽度 但不是 100 的高度 我尝试了几个例子 其中大多数都有相
  • 在 Android 浏览器中获取当前 URL

    我正在寻找一种方法来获取用户在 Android 浏览器应用程序上访问的当前 URL 我发现我可以从以下位置获取上次访问的 URLBrowser BOOKMARKS URI使用以下技术的数据库 Cursor cursor context ge
  • MySQL解释过滤列跳转4100带索引

    我的查询 EXPLAIN EXTENDED SELECT artwork id artwork added FROM artwork ORDER BY artwork added DESC LIMIT 0 6 当我在 添加 上添加索引以避免
  • 通过截断有效地将 OracleDecimal 转换为 .NET 十进制

    当我尝试使用 C 将以下 Oracle 空间对象转换为坐标集 小数 时 出现算术溢出异常 decimal OracleUdt GetValue MDSYS SDO GEOMETRY 2001 1041001 MDSYS SDO POINT
  • 如果搜索文本中的术语被换行符打破,如何使用 RegEx 查找术语

    假设我正在搜索 申请人 正如我之前发生过的事情一样 我收到一个如下的文本文件 We have considered the applica nt s experience and qualification and wish to gran
  • 模拟 Rails.env.development?使用 rspec

    我正在使用 rspec 编写单元测试 我想模拟 Rails env development 返回 true 我怎样才能做到这一点 我试过这个 Rails env stub development nil and return true 它抛
  • URI 中的路径可以包含 unicode 吗?

    有效的 URL 是否可以包含非转义的 Unicode 字符 是的 URI 中允许未转义的 ASCII 以及 Unicode 子集 例如字母和数字 但大多数 Unicode 字符集都必须进行百分比编码
  • MOXy 在 2.6.0 版本中支持非字符串 @XmlID 吗?

    根据https gist github com VineetReynolds 5108580 https gist github com VineetReynolds 5108580 JAXB 规范要求元素注释为 XmlID成为一个Stri
  • 如何启动 Perl 的交互式控制台?

    如何启动 Perl 的交互式控制台 类似于irbRuby 命令或python对于Python 您可以在一个简单的程序上使用 perl 调试器 如下所示 perl de1 该命令将启动 Perl 调试器 d 表达式1 e1 因为调试器想要调试
  • 消除java中的“\u3000”错误

    当我尝试编译java文件时 编译器说 非法字符 u3000 经过搜索 我发现是中日韩统一表意文字 https en wikipedia org wiki CJK Unified Ideographs中韩日的SPACE 我决定编写一个简单的搜
  • 如何使用 PhoneGap/Cordova 创建适用于 Windows Phone 7 的简单全景应用程序?

    我环顾四周 发现了几个适用于 Windows Phone 7 的基于 PhoneGap Cordova 的 HTML5 应用程序的示例 但它们似乎都没有向您展示如何制作全景或枢轴样式应用程序 而这些是该应用程序的一些主要吸引力 操作系统的用
  • 将私钥作为字符串的 Java SFTP 客户端

    Apache Commons 和 JSch 都需要私钥文件来建立 SFTP 连接 我正在从事的项目将用于连接到多个 SFTP 服务器 因此 我们不希望部署多个私钥文件 而是将这些密钥作为字符串保存在加密的配置文件中 是否有不需要私钥文件对象
  • 是否可以通过robots.txt控制抓取速度?

    我们可以在 robots txt 中告诉机器人抓取或不抓取我们的网站 另一方面 我们可以控制Google Webmasters中的抓取速度 Google bot抓取网站的速度 我想知道是否可以通过robots txt限制爬虫活动 我的意思是
  • IntelliJ 找不到类路径测试资源

    我遇到一个问题 IntelliJ 13 1 4 在运行单元测试时找不到ServiceLoader文件在src test resources我的模块的目录 在回答之前请注意我已完成以下所有操作 该模块是一个 Gradle 项目 如果我运行gr
  • iOS5 的 NSURLConnection 超时情况如何?

    我试图找到一个明确的答案 是否可以设置在 iOS 5 中使用 NSURLConnection 的超时值 我想将其设置为 30 秒 我搜索了过去关于此的帖子 但信息似乎相互矛盾 例如这个帖子 NSURLConnection 超时 https
  • 在 lucene 中搜索 UUID 不起作用

    我有一个 UUID 字段 以以下格式添加到我的文档中 372d325c e01b 432f 98bd bc4c949f15b8 但是 当我尝试通过 UUID 查询文档时 无论我如何尝试转义表达式 它都不会返回它们 例如 uuid 372d3