gpt4 book ai didi

hibernate - 在特定查询上出错

转载 作者:行者123 更新时间:2023-12-04 07:40:42 24 4
gpt4 key购买 nike

Lucene 新手在这里。
我在 java 客户端中将它与 Hibernate 一起使用,并且在特定查询中遇到此错误:

HSEARCH000146: The query string 'a' applied on field 'name' has no meaningfull tokens to  
be matched. Validate the query input against the Analyzer applied on this field.

搜索适用于所有其他查询,即使结果集为空。
我的测试数据库确实有这个带有“a”的记录。这里可能有什么问题?

最佳答案

'a' 是一个停用词,StandardAnalyzer 将从您的查询中过滤掉。停用词是在您搜索的语言中很常见的词,并且被认为对生成搜索结果没有意义。这是一个简短的列表,但 'a' 是英文中的一个。

由于分析器已删除该术语,并且它是唯一存在的术语,因此您现在发送的是一个空查询,这是 Not Acceptable ,并且搜索失败。

对于好奇的人,这些是标准的 Lucene 英语停用词:

"a", "an", "and", "are", "as", "at", "be", "but", "by",
"for", "if", "in", "into", "is", "it",
"no", "not", "of", "on", "or", "such",
"that", "the", "their", "then", "there", "these",
"they", "this", "to", "was", "will", "with"

如果您不想删除停用词,那么您应该设置您的 Analyzer没有 StopFilter ,或使用空的停用词集。在 StandardAnalyzer的情况下,您可以传入设置为 the constructor 的自定义止损点:
Analyzer analyzer = new StandardAnalyzer(CharArraySet.EMPTY_SET);

关于hibernate - 在特定查询上出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13765698/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com