2016-12-06 1 views
0

Je suis à la recherche d'utiliser solr pour mon poc et je suis frappé par le problème ci-dessous et je n'arrive pas à trouver une solution.Indexation des sous-mots d'une URL dans Solr

Toute aide serait très appréciée. !!

Voici les quatre cas, je suis en train de réaliser: URL: 1.www.abc.com 2.www.abcdef.com 3.www.123.com/abc 4.www.123 .com/abcdef

J'utilise standard tokenizer pour indexer les URLs qui divise les mots comme ci-dessous et index. 1.www.abc.com 2.www.abcdef.com 3.www.123.com et abc 4.www.123.com et abcdef

Quand je recherche abc je recevrais seulement 3ème URL comme résultat de la recherche.

Mais je veux obtenir toutes les quatre URL lorsque je recherche avec le mot clé abc.

Suggestion de Kinly.

Merci.

Répondre

0

Lorsque vous recherchez avec la chaîne "abc" tous les documents avec le jeton "abc" sont récupérés comme résultat. donc abc ne correspondra qu'à abc.

pour correspondre ABCDE ou ABCD .. etc pour correspondre à l'aide de la requête "abc", vous devez document index à l'aide de n-grammes

Lire sur Edge N-grammes.

Ajoutez ci-dessous le filtre dans votre fichier de schéma pour l'analyseur de champ type = "index" à votre définition typr de champ.

<filter class="solr.EdgeNGramFilterFactory" maxGramSize="20" minGramSize="2"/> 

Exemple: Nom du champ = "ABCDE"

EdgeNGramFilterFactory va générer des jetons comme ab, bc, cd, de, abc, Bcd, cde, ABCD, BCDE, ABCDE,

+0

Merci pour votre Répondre Vinod. Je pense que l'utilisation de NGram est bonne si nous avons le nom de champ de quelques caractères et générons des jetons. Mais dans mon cas, le champ est une URL dont la longueur peut être très longue et je suppose que dans ce cas, cela crée un grand nombre de jetons. que pensez-vous .. – user3257510

+0

correct, il génère plus de nombre de jetons. par conséquent, la taille de l'index et le temps d'indexation vont augmenter. Aucun autre moyen d'utiliser solr. – vinod