- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用 QueryParser
和 StandardAnalyzer
来解析查询字符串。通过此设置,如果我搜索“key Short”
,它将与文本“keyboard快捷方式”
不匹配。
我认为这是因为 queryString "key Short"
被解析为 BooleanQuery(TermQuery("key"), TermQuery("short"))
。如果我希望它匹配“键盘快捷键”
,我必须搜索“key*short*”
。我希望 QueryParser 自动为我执行此操作,即在给出查询字符串 "key Short"时生成:
。 BooleanQuery(PrefixQuery("key"), PrefixQuery("short"))
这是正确的方法吗?如果是这样,我该怎么做?
最佳答案
我从未找到“正确”的解决方案,因此我实现了一种黑客攻击,将通配符附加到原始查询中的各个单词,然后将其提供给分析器:
private static final Pattern QUERY_WORD_PATTERN = Pattern.compile("(?<= |^)(?!AND|OR)(\\w+)(?= |$)");
...
String processedQuery = String.format("%s OR %s",
QUERY_WORD_PATTERN.matcher(queryString).replaceAll("$1*"),
queryString);
Query query = new QueryParser(CONTENTS_FIELD, analyzer).parse(processedQuery);
关于java - 如何自动将所有 Lucene TermQuery 对象转换为 PrefixQuery?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60331151/
我有 2 个 lucene 查询: 1) Term term = new Term(Properties.LUCENE_APPARTMENT_ADDRESS,address); Query termQ
我正在使用 pyes Python 库使用 elasticsearch。 假设我想找到所有带有 title="Rainbow"和 artist="Kermit"的文档。以下返回带有 title="Ra
我正在研究 Lucene,无法区分 QueryParser 和 Term Query。看来他们是一样的。这是真的?如果不是,我应该什么时候使用一个而不是另一个? 最佳答案 不,它们不一样。以下是对它们
我目前不确定 Lucene 中 QueryParser 与 TermQuery 的行为;我正在使用 Lucene 3.6。 在我的示例中,我在同一索引上尝试以下示例,其中相关字段设置为 Field.S
我有一个 lucene 索引,我正在尝试进行通配符搜索。在索引中我有一个像'234Test2343'我正在尝试进行类似 %Test% 的搜索。 我的 lucene 语法看起来像 string cata
在elasticsearch中我有这样的数据: _id: 14133095_IMP _id: 54646546_OPS .... 我想找到所有包含 IMP 的 id。 这是我的映射 @Id priva
我使用 QueryParser 和 StandardAnalyzer 来解析查询字符串。通过此设置,如果我搜索“key Short”,它将与文本“keyboard快捷方式”不匹配。 我认为这是因为 q
我正在尝试生成类似于 lucene 中的 QueryParser 所做的事情,但没有解析器,即通过 StandardAnalyzer 运行一个字符串,将其标记化并在 BooleanQuery 中使用
我希望对 Lucene 内部工作有足够洞察力的人能够为我指明正确的方向 =) 我将跳过大部分与周围无关的代码,直接切入正题。我有一个 Lucene 索引,我将以下字段添加到索引中(变量替换为其文字值)
我正在使用 StandardAnalyser 为 10 个文本文档编制索引。 public static void indexDoc(final IndexWriter writer, Path fi
有两个查询,一个是由 QueryParser 创建的: QueryParser parser = new QueryParser(field, analyzer); Query query1 = pa
我尝试使用 TermQuery 测试 Lucene 上的搜索。但是,似乎只有在使用 WhitespaceAnalyzer 时搜索才有效。当我切换到 StandardAnalyzer 时,测试失败了。
我需要使用 EJB 通过网络发送一个包含 Lucene 元素(例如 Query)的类,当然这个类需要序列化。我将我的类标记为可序列化,但这似乎还不够: org.apache.lucene.search
我目前正在研究 Lucenes MoreLikeThis 的修改版本,以适应我自己的目的。 有一件事我还是不明白。 在创建队列时,MoreLikeThis 会搜索该术语的 docFreq 最高的字段。
我是一名优秀的程序员,十分优秀!