search - Lucene 查询不搜索单词“an”
问题描述
我编写了一个 lucene 搜索,用于搜索用户在实体的每个字段中输入的所有术语。这行得通,但现在我对“an”这个词有疑问。
具体来说,我想以任何顺序搜索单词"receptions de nouvel an"
,我的查询如下所示:
+description:*receptions* +description:*de* +description:*nouvel* +description:*an*
这没有给我任何结果,但我知道应该有 3 个结果。
- Réceptions de Nouvel 一个 MDDI/PCH
- 2011 年新人招待会
- 2010 年新人招待会
当我做这样的查询时
+description:*receptions* +description:*de* +description:*nouvel*
我得到了预期的结果。所以看来工作有问题"an".
有没有人知道这里出了什么问题以及为什么我的第一个查询不起作用?提前致谢
解决方案
使用 EnglishStopWords CharArraySet 的标准分析器的默认设置,其中还包括 "a,an,the" ex。如果您希望将这些单词编入索引,那么您可以使用一些自定义 CharArraySet 或像在停止词中一样使用
analyzer = new StandardAnalyzer(CharArraySet.EMPTY_SET);
推荐阅读
- python - 选择 tkinter 时按钮会瞬间改变颜色
- python - 如何在另一个类中使用一个类中的变量而不将类作为参数传递给构造函数
- gradle - Gradle Kotlin Native - 您没有指定任何编译参数。没有产生任何输出
- android - 使用 Kotlin 在 Fresco 中获取 GIF 文件
- arrays - 关于 SAS 的问题
- java - Android - 无法将 Spinner 值传递给 jsonSendRequest
- iterator - 如何从 Rust 中的字符串解析 int 值
- python - 计算DataFrame的最大值-最小值
- netlogo - Netlogo:在补丁的某个半径处找到补丁的最小变量
- php - php 问题从函数返回数组