2017-09-21 4 views
2

Nous utilisons Lucene pour rechercher un de nos projets. Le site se développe rapidement et nécessite une amélioration de la recherche. Une chose importante est de mélanger récence et pertinence.Sitecore lucene + augmentation de la requête sur le champ date calculée

Actuellement, la recherche s'effectue sur des termes clés saisis par l'utilisateur dans certains des champs désignés (comme le titre de la page, le contenu, etc.) et les résultats avec le score le plus élevé sont renvoyés.

En ce moment, l'utilisateur ne trouve pas ces résultats très utiles, car ils voient des articles d'anciennes dates sur le dessus. Bien que le contenu soit pertinent, il n'est pas récent.

Nous devons augmenter les résultats de recherche pour inclure la date publiée/mise à jour. Nous avons une colonne calculée (publishedupdateddate) pour cela, comment peut-elle être utilisée pour booster les résultats de recherche en augmentant le temps de requête?

Sinon le temps d'interroger, ne nous avons une autre façon d'inclure les dates tout calcul du score pour un article ...

s'il vous plaît conseiller

Répondre

0

champs calculés sont en général créés pour nous laisser ajouter données supplémentaires à l'index. Ils peuvent améliorer le temps des requêtes uniquement lorsque vous leur simplifier les requêtes. Si vous voulez donner des résultats plus rapidement, vous devriez essayer d'utiliser SOLR ou un cache, mais il est difficile de choisir le bon chemin lorsque nous ne connaissons pas le grand nombre de données que vous avez et la complexité des requêtes.

0

Vous pouvez créer une forme de notation de date en utilisant simplement l'API de recherche de sitecore standard. En ajoutant plusieurs conditions OU chacun sur différentes bandes de date-à-dire

ET (Titre = searchTerm OU author = searchTerm) ET ( PublishDate> dateTime.Now.AddDays (-7) OU PublishDate> dateTime.Now.AddDays (-30) OR PublishDate> dateTime.Now.AddDays (-90) OR PublishDate> dateTime.Now.AddDays (-180) OR PublishDate> dateTime.Now.AddDays (-365) )

Dans l'exemple ci-dessus, les articles âgés de 3 jours obtiendront une pertinence de 5 par rapport aux 5 co nditions. Un article d'il y a 9 mois ne marquera qu'une fois de la condition < -365. Un article sur 365 jours serait totalement exclu parce que la condition ET externe exige qu'au moins l'une de ces conditions de date DOIT correspondre, retournant cela à un OU signifierait que nous ajoutons juste la pertinence quand les choses concordent, plutôt que d'être un filtre dur. ils ne le font pas.