我正在使用Solr 1.4.1,我愿意将TermComponent用于AutoComplete。问题是,我不能让它匹配带有空格的字符串。所以说,
terms.fl=name&terms.lower=david&terms.prefix=david&terms.lower.incl=false&indent=true&wt=json
匹配以“david”开头的所有字符串,但如果我将其更改为:
terms.fl=name&terms.lower=david%20&terms.prefix=david%20&terms.lower.incl=false&indent=true&wt=json
它与以“david”开头的所有字符串都不匹配。是这样的意思吗?如果是这样,n-gram的方式是什么?有没有人知道TermComponent是否正在实现Tries或DAWG或Raddix树以及它是否有效?
干杯,
伯尔萨
答案 0 :(得分:2)
AFAIK TermsComponent提供原始(即字面意思)对字段术语的访问权限,因此如果没有任何带空格的术语(通常没有空格,那么空格标记器会处理它)它不会匹配任何东西。 TermsComponent不实现尝试或任何东西,它只是枚举字段索引中的术语。
恕我直言ngram是一种更灵活的自动完成解决方案。
Solr的下一个版本将有specific component to implement autosuggest(如果您使用nightly builds,现在可以使用它)