J'ai les tableaux ci-dessous avec laquelle je suis en train de créer une recherche à facettesComment créer une recherche à facettes dans mysql?
facets
facet_id | facet_name
--------------------
1 | LANGUAGES
2 | INDUSTRIES
3 | JOB TYPES
4 | SALARIES
5 | LOCATIONS
job_facts (Note: this is a view)
job_id | facet_id | value
----------------------------------------
1 | 1 | French
1 | 2 | Sales
1 | 3 | Permanent
1 | 4 | 15000-20000
1 | 5 | New York
2 | 1 | French
2 | 1 | Dutch
2 | 2 | Sales
2 | 2 | Media
2 | 3 | Temporary
2 | 4 | 20000-25000
2 | 4 | 25000-30000
2 | 5 | New York
3 | 1 | German
3 | 2 | Accounts
3 | 3 | Permanent
3 | 4 | 10000-15000
3 | 5 | Paris
4 | 1 | Spanish
4 | 2 | Marketing
4 | 3 | Permanent
4 | 4 | 15000-20000
4 | 5 | London
Je peux produire les résultats intial et la navigation à facettes en utilisant le SQL ci-dessous:
# SQL To retrieve job data:
SELECT * FROM jobs
# SQL To construct the intial HTML faceted navigation:
SELECT t2.facet_name
, t1.value
, count(*) AS c
FROM job_facts t1
INNER JOIN facets t2 ON t1.facet_id = t2.facet_id
GROUP BY t2.facet_name, t1.value
Le html face nav apparaîtrait comme suit:
> LANGUAGES
French (2)
German (1)
Spanish (1)
Dutch (1)
> INDUSTRIES
Sales (2)
Accounts (1)
Media (1)
Marketing (1)
> JOB TYPES
permanent (3)
temporary (1)
> SALARIES
10000-15000 (1)
15000-20000 (2)
20000-25000 (1)
25000-30000 (1)
> LOCATIONS
New York (2)
Paris (1)
London (1)
Je suis coincé sur la façon de contruct SQL pour produire la navigation facette et les résultats d'emploi dyn amicalement lorsque l'utilisateur commence à sélectionner plusieurs facettes. Par exemple, si l'utilisateur a cliqué sur la facette « français », la navigation devrait afficher comme suit:
> LANGUAGES
French X
> INDUSTRIES
Sales (2)
Media (1)
> JOB TYPES
permanent (1)
temporary (1)
> SALARIES
15000-20000 (1)
20000-25000 (1)
25000-30000 (1)
> LOCATIONS
New York (2)
#The results would list:
job_id | title | jobtype_id | location_id | post_dt | exp_dt
---------------------------------------------------------------------------------------------
1 | French Sales Job | 1 | 1 | 2015-04-01 | 2015-05-01
2 | French & Dutch Sales Media Job | 2 | 1 | 2015-04-01 | 2015-05-01
Si les exercices utilisateur plus bas et sélectionnez la facette la navigation et les résultats « temporaire » devraient afficher comme suit:
> LANGUAGES
French X
> INDUSTRIES
Sales (1)
Media (1)
> JOB TYPES
temporary X
> SALARIES
20000-25000 (1)
25000-30000 (1)
> LOCATIONS
New York (1)
#the results would list:
job_id | title | jobtype_id | location_id | post_dt | exp_dt
---------------------------------------------------------------------------------------------
2 | French & Dutch Sales Media Job | 2 | 1 | 2015-04-01 | 2015-05-01
Quel serait le SQL pour modifier les résultats des travaux et la navigation par facettes? Est-ce que quelqu'un sait d'une manière plus élégante pour réaliser ceci? Malheureusement, je ne peux pas utiliser Solr en raison d'être sur une plate-forme hébergée.
Toute aide serait appréciée.