2011-10-14 3 views
3

J'utilise le composant SOLR suggester, mais je n'arrive pas à savoir comment l'arrêter en séparant les espaces et en renvoyant plusieurs suggestions pour chaque mot.SOLR - Auto Suggérer des phrases

Je voudrais une commande: http://localhost:8983/solr/suggest?q= « fuite de mémoire »

et l'obtenir à la recherche de mon champ de recherche (créé à l'aide KeywordTokenizerFactory, plutôt que StandardTokenizerFactory) pour la phrase entière.

Je suis sûrement juste en train d'être bête ici?

Répondre

3

Jetez un oeil à ce fil: http://lucene.472066.n3.nabble.com/suggester-issues-td3262718.html

Vous pourriez avoir à utiliser une classe personnalisée comme ci-dessous pour obtenir ce que vous attendez:

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; 
    } 

} 
0

Dans les versions ultérieures de Solr (nous avons 4,6 .1), vous avez juste besoin de déposer ce qui suit dans le fichier solrconfig.xml:

<queryConverter name="queryConverter" class="org.apache.solr.spelling.SuggestQueryConverter"/> 
Questions connexes