gpt4 book ai didi

java - 使用 Hibernate Search 和 Lucene 实现类似 Google 的搜索

转载 作者:太空宇宙 更新时间:2023-11-04 14:34:37 25 4
gpt4 key购买 nike

我正在使用 Hibernate Search 和 Lucene 对文档数据库的内容字段进行全文搜索。我有一个正在接受用户查询的搜索文本框。我已将搜索固定为基于短语匹配的搜索。我想使用组合搜索。为了解释我的观点,假设用户想要搜索“美国”。如果我使用基于短语的搜索,它将给出查询中的每个出现情况,并忽略单独出现的“United”和“States”。如果我进行字段匹配搜索,它将获取包含单个查询词的所有结果。我的问题是,是否有任何直接的方法,以便如果用户搜索带有引号或任何其他标记的短语, hibernate 搜索将应用基于短语的搜索。否则它会检索基于单词的结果。如果用户输入两个以任意布​​尔字符分隔的查询词,则应用 boolean 搜索等。例如:

Example Query     | Description
United States | Search for all occurrences of two words: United and States
"United States" | Search for phrase "United States"
United NOT States | Apply Boolean not query on United and States

等等

我想实现像google这样的东西,我知道google太强大了但至少可以做到一点点。我只是想知道 Hibernate Search 和 lucene 中是否有针对此类事情的内置功能,或者我需要为用户提供一些运算符,手动解析用户查询,实现一些逻辑来找出运算符和其他符号,然后应用根据找到的符号进行查询。请帮忙

最佳答案

Hibernate Search 中没有直接类似的东西,但 Lucene 有一个查询解析器。对于它的语法,请查看 - http://lucene.apache.org/core/4_10_0/queryparser/org/apache/lucene/queryparser/classic/package-summary.html#package_description .

如果您对其功能和语法感到满意,您可以将用户输入传递给 Lucene 查询解析器。如果没有,您将需要编写自己的语法和语法解析器,它将查询转换为适当的 Hibernate Search/Lucene 查询。

关于java - 使用 Hibernate Search 和 Lucene 实现类似 Google 的搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25743475/

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