2013-06-21 3 views
0
Exclure

dans Sitecore recherche Lucene, nous pouvons exclure un modèle de recherche avec la balise web.config suivante:Sitecore Lucene Recherche article

<include hint="list:ExcludeTemplate"> 
    <template>{8C18027D-CA51-4E5D-A7C1-510965555C}</template> 
</include> 

Ma question est:

Comment peut-on exclure un élément spécifique de la recherche en utilisant web.config.

Y at-il une étiquette comme:

<include hint="list:ExcludeItem"> 

Je recherche sur le web mais n'a pas pu le trouver. La solution et une référence connexe seraient appréciées.

Thanx

+2

Il n'y a aucun moyen d'obtenir ce dont vous avez besoin en utilisant uniquement les fichiers de configuration. La réponse @Trayek ci-dessous explique comment faire cela à partir du code. N'oubliez pas de définir 'CustomCrawler' comme votre robot d'exploration de lieu. –

Répondre

4

Je ne sais pas s'il est possible de le faire à travers le web.config, mais vous pouvez avoir une case à cocher sur vos modèles qui, si elle est cochée, il ne sera pas ajouté à l'index?

Cela signifierait un robot personnalisé mais, ce qui ferait quelque chose comme:

public class CustomCrawler : DatabaseCrawler 
{ 
    protected override bool IsMatch(Item item) 
    { 
     if (MainUtil.GetBool(item["include in search"], false)) 
     { 
      return false; 
     } 

     return base.IsMatch(item); 
    } 
} 
0

Vous pouvez étendre le robot d'exploration pour soutenir ce type de configuration. Ma société a étendu le module recherche contrib Sitecore de Alex Shyba pour soutenir l'inclusion et l'exclusion des chemins d'article avec <include hint="list:IncludePath"> et <include hint="list:ExcludePath">

Vous pouvez trouver le code spécifique dans cette classe: https://github.com/unic/SitecoreSearchContrib/blob/master/scSearchContrib.Crawler/Crawlers/AdvancedDatabaseCrawler.cs

Ceci est seulement une entrée, mais avec cela, vous pouvez faire une intégration profonde et propre dans le robot. L'approche de Trayek fonctionnerait aussi.