J'ai une base de données d'URL que je voudrais rechercher. Étant donné que les URL ne sont pas toujours écrites de la même manière (mai ou ne disposent pas de www), je suis à la recherche de la bonne façon d'indexer et d'interroger les URL. J'ai essayé quelques choses, et je pense que je suis proche, mais pas sûr de la raison pour laquelle cela ne fonctionne pas:
Voici mon type de champ personnalisé: P>
<fieldType name="customUrlType" class="solr.TextField" positionIncrementGap="100"> <analyzer type="index"> <tokenizer class="solr.WhitespaceTokenizerFactory"/> <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="0" preserveOriginal="1"/> <filter class="solr.LowerCaseFilterFactory"/> </analyzer> <analyzer type="query"> <tokenizer class="solr.WhitespaceTokenizerFactory"/> <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="0" preserveOriginal="0"/> <filter class="solr.LowerCaseFilterFactory"/> </analyzer> </fieldType>
3 Réponses :
Vous pouvez essayer le Mot-clé Tokenizer P>
du livre SOLR 1.4 Enterprise Search Server EM> Publié par Packt P>
mots clés de mots clés: cela ne fait pas
effectivement faire une tokénisation ou
rien du tout à ce sujet! Ce
Renvoie le texte d'origine comme un terme.
Il y a des cas où vous avez un
champ qui obtient toujours un mot, mais
Vous devez faire une analyse de base
comme la masse inférieure. Cependant, c'est plus
probablement qu'en raison du tri ou du tri
exigences en facettes dont vous aurez besoin
un champ indexé sans plus de
un terme. Certainement un document
champ d'identifiant, si fourni et non
Un nombre, utiliserait cela. P>
blockQuote>
Ceci devrait être la solution la plus simple:
<field name="iconUrl" type="string" indexed="true" stored="true" />
Ouais, chaîne code> si de
Strfield code>, il ne sera pas analysé, mais pourrait être stocké / indexé, il est approprié pour l'URL, je suppose.
Cela ne fonctionnera pas pour les requêtes de l'OP qui spécifient uniquement des parties de l'URL
Si je comprends cette déclaration de votre question
myfield :( "Twitter com Andersoncooper") Lorsque vous voulez vraiment correspondre à tous les enregistrements présentant tous les mots distincts suivants: Twitter Com Andersoncooper P> BlockQuote>
Vous essayez d'écrire une requête qui correspondrait à la fois: P>
&q.op=AND&q=myField:(andersoncooper twitter com)
Avez-vous déjà fini par trier cela?
Avez-vous trouvé notre ce qui doit être fait ici?