如何用Solr的facet功能实现自动完成(autocomplete)功能?
首先,确定需要实现自动完成功能的字段(Field),并在scheme.xml文件中设置该字段的属性为:
type="string" indexed="true" stored="true" multiValued="false"
设置完成后,按照下面的方式进行facet查询:
q=*%3A*&rows=0&wt=json&indent=true&facet=true&facet.field=YOUR_FACET_FIELD&facet.prefix=SOME_WORDS&facet.limit=10
参数解释:
q=*%3A*&
rows=0& //不返回数据结果
wt=json& //返回JSON格式
indent=true& //缩进
facet=true& //启用facet
facet.field=YOUR_FACET_FIELD& //指定进行facet的字段
facet.prefix=SOME_WORDS& //用户输入的部分关键词
facet.limit=10 //返回最多10条提示
当用户输入了第一个字的时候,就按照上述方法开始自动完成的查询,并提示给用户,随着用户输入增多,返回的结果可能会越来越少,用户可以直接选择某个提示信息,进行精确查找。