我们的客户在其网站上使用了一些缩写词。
例如,假设STACK是他们正在使用的首字母缩略词。
当他们搜索“STACK”(关键字)时,他们希望完全匹配“STACK”的文档(大写)位于搜索结果的顶部,而不是匹配“stack”小写的文档。
有没有办法实现这个目标?也许是通过查询提升某种方式?
我现在正在使用StandardAnalyzer。
答案 0 :(得分:0)
来自文档:
public final class StandardAnalyzer extends StopwordAnalyzerBase
使用StandardFilter,LowerCaseFilter和。过滤StandardTokenizer StopFilter,使用英文停用词列表。
所以你在'STACK'和'stack'之间没有区别。您可以将关键字再次添加为与您搜索的关键字完全匹配的StringField,并提升关键字字段。
答案 1 :(得分:0)
对这一个案例(STACK vs stack)做出任何判断真的很难。如果您的所有首字母缩略词都是大写的,只需从分析器链中排除LowerCaseFilter
即可。如果您的某些首字母缩略词可以包含点或短划线(例如Y.M.C.A.),则可能需要使用WhitespaceAnalyzer
(而不是StandardAnalyzer
)来确保它们不会分成多个术语。
对我来说,在这里提升声音是多余的。假设有人输入的查询与首字母缩略词紧密匹配,相关文件因其相似性而无论如何都会排在高位。