2010-12-20 3 views
1

J'ai un doute sur les possibilités de solr. J'ai besoin de faire une demande avec des numéros spéciaux:plusieurs besoins d'ordenation dans la même demande

J'ai besoin d'abord: les enregistrements promus avec tous les termes tapés par l'utilisateur (classés au hasard). deuxième: enregistrements promus avec n'importe quel terme tapé par l'utilisateur (trié de façon aléatoire). troisième: les enregistrements promus trouvés par la recherche de racine (triés de façon aléatoire). quatrième: les enregistrements promus trouvés par la recherche phonétique (de manière aléatoire). cinquième: les enregistrements gratuits classés par ordre alphabétique (ayant tous ou n'importe quel terme tapé par l'utilisateur).

ces résultats doivent être paginés.

est-il possible de le faire dans la même demande?

Répondre

0

Après avoir découvert que la commande est aléatoire soutien solr via:

<fieldType name="random" class="solr.RandomSortField" /> 
<field name="random" type="random" indexed="true" stored="false"/> 

ces requêtes seront possibles mais pas dans une requête

Bien que l'on pourrait utiliser la facette et fonction facet.query, mais cela ne renvoie que le nombre ... pas les docs.

Je place un index publicitaire séparé au lieu de la façon normale de mettre en œuvre la « publicité » avec les elevation component

records promus avec tous les termes tapés par l'utilisateur (commandé au hasard)

une requête AND simple par rapport à l'index publicitaire

promu enregistrements avec un terme tapé par l'utilisateur (trié de façon aléatoire)

simple ou requête sur l'indice de la publicité

records promus trouvés par la recherche issue (ordre aléatoire).

recherche normale (avec stemming) dans l'index publicitaire.

promu enregistrements trouvés par la recherche phonétique (de façon aléatoire).

vous aurez besoin de transformer la requête et les termes via votre propre transformation phonétique pour le faire. de sorte que vous aurez un champ spécial phonetic_text et vous devrez interroger ce via

q = phonetic_text: "UR G8" (ce qui veut dire: vous êtes grand ;-))

commandés gratuitement records alphabétiquement (avoir tout ou n'importe quel terme tapé par l'utilisateur).

recherche à nouveau normale via « ET » ou « OU » avec le paramètre de tri

Questions connexes