我正在使用solr和EdgeNGram处理自动完成功能 并创造出多元化的领域
这里是schema.xml的详细信息
.....
<fieldType name="autocomplete" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<!--tokenizer class="solr.KeywordTokenizerFactory"/-->
<!--tokenizer class="solr.NGramTokenizerFactory" minGramSize="2" maxGramSize="50"/-->
<tokenizer class="solr.WhitespaceTokenizerFactory" minGramSize="2" maxGramSize="50"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.EdgeNGramFilterFactory" minGramSize="1" maxGramSize="25" />
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
.......
<dynamicField name="*_ac" type="autocomplete" indexed="true" stored="true" multiValued="true" />
这就是我宣布用户模型的方式
class User&lt;的ActiveRecord :: Base的 attr_accessible:email,:name
可搜索的 文字:电子邮件 文字:名字 自动填充:text_ac,:as =&gt; :text_ac,:multiple =&gt;真的 [self.email,self.name] 结束 端
端
我正在寻找的是获得“点击”价值的方法
当我用
查询solr时Sunspot.search(User, Post) do with(:user_id, 1);
adjust_solr_params do |p| p[:q] = 'text_ac:"some s"'; p[:fq] = '' end
end.results
我可以获取实例(用户,帖子)
,但我怎样才能得到命中值 - 多值字段中的确切行 - 数组的元素