Solr 自动建议短语
我正在使用SOLR suggester组件,但我无法解决如何阻止它在空格上拆分并为每个单词返回多个建议 我想发出一个命令: “内存泄漏” 并让它搜索整个短语的我的搜索字段(使用关键字TokenizerFactory而不是StandardTokenizerFactory创建)Solr 自动建议短语,solr,autosuggest,Solr,Autosuggest,我正在使用SOLR suggester组件,但我无法解决如何阻止它在空格上拆分并为每个单词返回多个建议 我想发出一个命令: “内存泄漏” 并让它搜索整个短语的我的搜索字段(使用关键字TokenizerFactory而不是StandardTokenizerFactory创建) 我肯定是在这里装傻?看看这个帖子: 您可能需要使用如下自定义类才能获得所需的: import java.util.ArrayList; import java.util.Collection; import java.
我肯定是在这里装傻?看看这个帖子: 您可能需要使用如下自定义类才能获得所需的:
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import org.apache.lucene.analysis.Token;
import org.apache.solr.spelling.QueryConverter;
/**
* Converts the query string to a Collection of Lucene tokens.
**/
public class SpellingQueryConverter extends QueryConverter {
/**
* Converts the original query string to a collection of Lucene Tokens.
* @param original the original query string
* @return a Collection of Lucene Tokens
*/
@Override
public Collection<Token> convert(String original) {
if (original == null) {
return Collections.emptyList();
}
Collection<Token> result = new ArrayList<Token>();
Token token = new Token(original, 0, original.length(), "word");
result.add(token);
return result;
}
}
import java.util.ArrayList;
导入java.util.Collection;
导入java.util.Collections;
导入org.apache.lucene.analysis.Token;
导入org.apache.solr.spelling.QueryConverter;
/**
*将查询字符串转换为Lucene标记的集合。
**/
公共类SpellingQueryConverter扩展了QueryConverter{
/**
*将原始查询字符串转换为Lucene标记的集合。
*@param original原始查询字符串
*@返回一组Lucene代币
*/
@凌驾
公共集合转换(字符串原始){
如果(原始==null){
返回集合。emptyList();
}
收集结果=新建ArrayList();
Token Token=新标记(原始,0,original.length(),“word”);
结果。添加(令牌);
返回结果;
}
}
在更高版本的solr(我们有4.6.1)中,您只需在solrconfig.xml中删除以下内容:
<queryConverter name="queryConverter" class="org.apache.solr.spelling.SuggestQueryConverter"/>