Solr TermsComponent:通配符的用法

时间:2010-11-14 08:31:00

标签: autocomplete lucene solr

我正在使用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树以及它是否有效?

干杯,
伯尔萨

1 个答案:

答案 0 :(得分:2)

AFAIK TermsComponent提供原始(即字面意思)对字段术语的访问权限,因此如果没有任何带空格的术语(通常没有空格,那么空格标记器会处理它)它不会匹配任何东西。 TermsComponent不实现尝试或任何东西,它只是枚举字段索引中的术语。

恕我直言ngram是一种更灵活的自动完成解决方案。

Solr的下一个版本将有specific component to implement autosuggest(如果您使用nightly builds,现在可以使用它)