【发布时间】:2014-09-09 11:28:40
【问题描述】:
我正在使用 Hibernate Search 和 Lucene 在我的文档数据库的内容字段上进行全文搜索。我有一个正在接受用户查询的搜索文本框。我已将搜索修复为基于短语匹配的搜索。我想使用搜索的组合。为了解释我的观点,假设用户想要搜索“美国”。如果我使用基于短语的搜索,它将给我查询中的每一次出现,而忽略“United”和“States”的个别出现。如果我对字段匹配进行搜索,它将获取包含单个查询词的所有结果。我的问题是,如果用户搜索带有引号或任何其他标记的短语,是否有任何直接的方法,休眠搜索应用基于短语的搜索。否则,它会检索基于单词的结果。如果用户输入两个以任意布尔字符分隔的查询词,则应用布尔搜索等。例如:
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 中是否有针对此类事物的内置功能,或者我需要给用户一些运算符,手动解析用户查询,实现一些逻辑来找出运算符和其他符号,然后应用基于找到的符号进行查询。请帮忙
【问题讨论】:
标签: java hibernate lucene hibernate-search