Nous travaillons en ligne avec un modèle de recherche.demander un modèle de conception
Dans le servlet de recherche, il capture les paramètres de requête du client, puis génère une requête de recherche d'hibernation pour la recherche.
Maintenant, le problème est que les paramètres du client sont mutables!
Tous les paramètres que nous accepte sont répertoriés comme suit:
1) mot-clé.
Le (s) mot (s) clé (s) utilisé (s) pour la recherche, une requête de recherche peut être traitée même si ce paramètre est passé. exemple valide:
/search?keyword="test"
2) lowleftX, lowleftY, upperrightX, upperrightY.
Ces quatre paramètres doivent apparaître simultanément ou jamais. Puisque ces quatre paramètres sont utilisés pour une TermRangeQuery dans lucene.Si l'un d'entre eux se produit, les trois autres doivent également se produire. Et, ces quatre paramètres peuvent se produire avec le "mot-clé" à la fois. exemple valide:
/search?lowleftX=10&lowleftY=10&upperrightX=40&upperrightY=30
/search?lowleftX=10&lowleftY=10&upperrightX=40&upperrightY=30&keyword="test"
3) catégorie
Ceci permet de limiter le champ de recherche (juste une recherche dans la catégorie spéciale).
4) commencer, limiter
Ces deux paramètres utilisent pour la pagination.
5) returnFields
Les returnFields qui seront retivived de l'indice (si elle est stockée dans l'index) et de retour vers le client.
Donc je n'ai aucune idée sur la façon de construire la requête en utilisant la syntaxe d'estimation (if .... else .... if ...).
Quelqu'un peut me dire comment?