7
votes

Indexation et interrogation des URL dans SOLR

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>


2 commentaires

Avez-vous déjà fini par trier cela?


Avez-vous trouvé notre ce qui doit être fait ici?


3 Réponses :


-1
votes

Vous pouvez essayer le Mot-clé Tokenizer

du livre SOLR 1.4 Enterprise Search Server Publié par Packt

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.


0 commentaires

0
votes

Ceci devrait être la solution la plus simple:

<field name="iconUrl" type="string" indexed="true" stored="true" />


2 commentaires

Ouais, chaîne si de Strfield , 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



1
votes

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)


0 commentaires