J'ai un catalogue de produits que j'indexe dans ElasticSearch en utilisant le client Elastica.ElasticSeach - Obtenir des mots à la fois incomplets et pluriels
Alors que la mise en œuvre de recherche, je *
après les Annexer des termes de recherche tapées de sorte que lorsque l'on tape whis
ou whisk
il va déjà commencer à voir les résultats de la recherche pour whisky
.
Mais je veux montrer des résultats pour poster
quand on tape posters
aussi bien.
J'ai été en mesure d'atteindre le résultat du pluriel au singulier en utilisant le filtre snowball
. Mais pour que cela fonctionne, je dois supprimer *
.
Ceci est incorrect car il n'y a aucun résultat à afficher jusqu'à ce qu'un mot complet soit entré.
Des idées comment je peux faire à ce sujet? Mon code d'analyse: (extrait de here)
'analysis' => array(
'analyzer' => array(
'indexAnalyzer' => array(
'type' => 'custom',
'tokenizer' => 'whitespace',
'filter' => array('lowercase', 'mySnowball')
),
'searchAnalyzer' => array(
'type' => 'custom',
'tokenizer' => 'whitespace',
'filter' => array('lowercase', 'mySnowball')
)
),
'filter' => array(
'mySnowball' => array(
'type' => 'snowball',
'language' => 'English'
)
)
)
Bump! Quelqu'un sait quelque chose? – Hitesh