Come far sì che i sinonimi di tassonomia funzionino saldamente con l'API di ricerca?


20

I sinonimi dei tag sono una caratteristica popolare e importante in molti siti (utilizzati qui su StackExchange, ad esempio), e i sinonimi di tassonomia facevano parte del modulo principale di tassonomia di Drupal 6, prima di essere eliminati a favore dei sistemi di sinonimi personalizzati "Roll your own" utilizzando Field API .

Quando i sinonimi funzionano in modo affidabile, sono estremamente utili nella ricerca; ad esempio, per assicurarmi che le ricerche in "America" ​​trovino il contenuto taggato "USA", ecc. Tuttavia, non riesco a trovare alcun indizio su quale sia il metodo standard per implementare questa funzione quando si lavora con la popolare API di ricerca - API facet famiglia di moduli di ricerca integrati correlati, per ricerche di nodi.

"Seguire il flusso" è importante quando si lavora con cluster di moduli come questo, per assicurarsi che i sistemi implementati non vadano contro il modo di pensare della comunità e dei manutentori dei moduli. Quando vanno controcorrente, sono instabili e rischiano di essere rotti da future modifiche a questi moduli.

Che cos'è un metodo affidabile / robusto / standard / previsto per l'implementazione dei sinonimi di tassonomia in D7 per i siti che utilizzano l'API di ricerca? (in particolare, con Search API Solr , ma spero che i tentativi di Search API di estrarre il particolare provider di ricerca funzionino in questo caso).

Se hai un sistema per questo che sembra funzionare, ma è qualcosa che hai capito e non sei sicuro che sia o meno contro il grano (abbastanza comune in Drupal), ti preghiamo di condividerlo comunque con le informazioni del tuo test, utilizzo ed esperienza su quali funzioni e moduli della famiglia API API di ricerca fa e non funziona bene.

Alcune opzioni plausibili ma potenzialmente flakey che ho trovato nella ricerca:

  • C'è un modulo Sinonimi di ricerca D7 , ma sembra essere poco usato e non c'è alcuna conferma che funzioni o continuerà a funzionare con moduli di ricerca di terze parti come l'API di ricerca (è progettato pensando alla ricerca di base di Drupal). Modifica: inoltre non sembra essere troppo affidabile in D7 in generale .
  • È teoricamente possibile aggiungere un campo di riferimento termine chiamato "Sinonimi" a un vocabolario di tassonomia e indicizzare questo campo dal termine nell'API di ricerca con lo stesso peso del termine sul nodo stesso. Funzionerebbe per le ricerche di testo, ma sembra una soluzione a nastro per condotte MacGuyver-y piuttosto che qualcosa di robusto che si inserisce senza problemi nell'intera famiglia di API di ricerca. Ad esempio, se un termine "Regno Unito" ha un sinonimo di "Gran Bretagna", qualcuno che cerca in "Gran Bretagna" otterrebbe risultati taggati con United Kindgom, ma qualcuno che digita "Gran Bretagna" in un filtro esposto tassonomia con completamento automatico o seleziona la Gran Bretagna con un fatto di tassonomia non vedrebbe alcun contenuto taggato con "Regno Unito". *****
  • Un'altra possibilità simile è l'aggiunta di un campo di testo semplice "Sinonimi" a più valori al termine vocabolario (o anche separato da virgola, immagino) e l'indicizzazione con lo stesso peso del nome del termine sopra. Ma questo ha simili problemi, se non peggio, di quanto sopra nell'esempio sopra, "Gran Bretagna" non verrebbe nemmeno elencato come opzione in una sfaccettatura o in un filtro esposto. Potrebbe esserci un modo per creare un campo composito combinando nome e sinonimi ("Regno Unito (Gran Bretagna, Regno Unito)") e impostare sfaccettature / filtri esposti / ecc. Per usarlo ... ma non riesco a pensare in alcun modo per fare questo che non è preoccupantemente preoccupato e che non si sente preoccupante contro il grano. Modifica: l' API di ricerca combinata sembra progettata per qualcosa del genere, ma io '
  • Poi c'è l'ultima opzione di ricorrere a stipare tutto nel nome del termine: dovrebbe essere chiaro che questo non è desiderabile e in molti casi renderebbe elenchi molto brutti (ad esempio immaginare un elenco di navigazione di paesi che sono stati scritti come "Nord Corea (PRK, RPDC, Repubblica democratica popolare di Corea) "...). O avere un campo "Visualizza nome" che mostra la versione breve e impostare tutto tranne la ricerca (tutte le viste, Pathauto, ogni altro modulo contrib / core che utilizza il nome del termine) per utilizzare questo invece del nome del termine ... di nuovo, molto confuso e molto contro il grano.
  • Apache Solr ha una funzione Sinonimi, in cui viene letto un file di testo di sinonimi e questi termini vengono trattati come sinonimi nelle ricerche che lo utilizzano. Tuttavia, sebbene sia possibile in una configurazione dell'API di ricerca che utilizza Solr, i manutentori del modulo ritengono che la configurazione avanzata Solr "tentativo a proprio rischio" non sia supportata . Inoltre, è più appropriato per la sinonimia generica nella lingua del sito che per la sinonimia specificamente nel contesto di una tassonomia. Ad esempio, un sito con una tassonomia che non discrimina l'Inghilterra, la Scozia ecc. Dalla Gran Bretagna potrebbe volerli considerare sinonimi nel contesto del tagging, ma non nel contesto delle ricerche sul corpo del testo. Modifica: il manutentore dell'API Facet capo mette in guardia contro questa rotta poiché i moduli di integrazione Solr funzionano con termini come TID e non testo.

Sono consapevole che questo è un esempio imperfetto perché nel caso del Regno Unito / Gran Bretagna e dei paesi in generale, le persone sono abituate a utilizzare elenchi che hanno solo l'uno o l'altro. Esistono molti casi meno semplici (ad es. Categorie di prodotti) in cui le persone non pensano di cercare un sinonimo.

Aggiornamento: informazioni rilevanti in un nuovo thread nella coda dell'API Facet di Drupal.org . Anche un thread (attualmente senza risposta) sulla coda dell'API di ricerca .

(tutti gli avvocati che si domandano se va bene che ci siano richieste di supporto di drupal.org e drupal risponde a domande sullo stesso argomento: sì, in effetti è incoraggiato a togliere la pressione dai manutentori del modulo )


1
hai trovato la soluzione a questo? Ho questo esatto problema ora.
vishal

Risposte:


2

Ho usato l'eccellente modulo Sinonimi di Bojanz . È una completa riscrittura della funzione sinonimi di D6, con una serie di nuove campane e fischietti. Sembra che potrebbe fare la maggior parte di quello che ti serve.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.