2016-03-18 2 views
1

J'utilise apache solr pour rechercher des enregistrements dans mon application actuelle.Comment configurer plusieurs contextes dans un seul suggeser solr?

Et j'étais capable de filtrer les suggestions basées sur DocumentType en configurant le champ de contexte.

Maintenant je veux ajouter un autre champ de contexte comme departmentType. Je ne suis pas sûr comment configurer le suggester pour plusieurs champs de contexte.

Ceci est le suggester utilisé avec les champs de contexte unique et cela fonctionne très bien.

<searchComponent name="suggest" class="solr.SuggestComponent"> 
    <lst name="suggester"> 
    <str name="name">suggesterByName</str> 
    <str name="lookupImpl">AnalyzingInfixLookupFactory</str> 
    <str name="dictionaryImpl">DocumentDictionaryFactory</str> 
    <str name="field">fullName</str> 
    <str name="contextField">documentType</str> 
     <str name="suggestAnalyzerFieldType">text_general</str> 
    <str name="buildOnStartup">false</str> 
    </lst> 
</searchComponent> 

Je me réfère ce poste https://issues.apache.org/jira/browse/SOLR-7888

mais toujours pas clair comment configurer plusieurs champs de contexte dans un seul suggester.

+0

Avez-vous trouvé une réponse à cela? J'ai des exigences similaires, ressemble à SOLR-7888 prend en charge plusieurs valeurs pour un champ de contexte donné en utilisant la requête booléenne. – Shamik

Répondre

1

Vous devez créer un nouveau champ dans votre fichier schema.xml en tant que contexte_field. Ce champ devrait avoir multivalued=true

<field name="context_field" type="text_suggest" multiValued="true" indexed="true" stored="true"/> 

Ensuite, vous devez créer cette context_field comme une liste JSON pour l'indexation dans solr.

"context_field" : ["some document type", "some department type"] 

après que vous pouvez suggérer comme this-

suggest.q=b&suggest.cfq=context_documentType AND context_departmentType 

indexant espérons que cela fonctionne

+0

savez-vous s'il est possible de retourner les suggestions groupées par champs de contexte? –

+0

@FabrizioFortino pouvez-vous s'il vous plaît expliquer «groupés par des champs de contexte» ?? – vsri293

+0

Le filtrage contextuel vous permet de filtrer les suggestions avec un champ de contexte séparé. Existe-t-il un moyen de renvoyer les suggestions groupées par le champ de contexte? Par exemple, j'ai ces documents: '{nom: Heu, suggérer: mercedes, type: voiture}, {nom: bbbb, suggère: mazda, tapez: voiture}, {nom: cccc, propose: mazda, tapez: voiture}, {name: dddd, suggérez: mercedes, tapez: bike} ' Disons que l'utilisateur tape" m ", je voudrais retourner ' {suggérer: mazda, tapez: voiture , count: 2}, {suggèrent: mercedes, tapez: voiture, compte: 1}, {suggèrent: mercedes, tapez: vélo, compte: 1} ' –