Domanda

In una delle nostre applicazioni commerciali (Win32, scritta in Delphi) vorremmo implementare la ricerca full-text.L'applicazione memorizza i dati dell'utente in una sorta di formato binario che non è direttamente riconoscibile come testo.

Idealmente, mi piacerebbe trovare una soluzione in-process (DLL andrebbe bene) o un server locale a cui poter accedere tramite TCP (preferibilmente).L'API dovrebbe consentirmi di inviare informazioni testuali al server (insieme ai metadati che rappresentano il blob binario da cui proviene) e, ovviamente, dovrebbe consentirmi di eseguire una ricerca full-text con un supporto almeno minimo per gli operatori logici e ricerca di sottostringhe.È richiesto il supporto Unicode.

Ho trovato un ampio elenco di motori di ricerca su Stack Overflow (Quali sono alcuni server di ricerca disponibili?) ma non capisco bene quale di questi motori possa soddisfare le mie esigenze.Ho pensato di chiedere un parere a The Collective prima di dedicare un giorno o due a testarli ciascuno.

Eventuali suggerimenti?

È stato utile?

Soluzione

Ci sono una serie di opzioni sul mercato.O prodotti commerciali a tutti gli effetti o varianti open source.La scelta di un provider di ricerca dipende molto dai clienti a cui ti rivolgi.

Microsoft ha una versione Express gratuita del proprio server di ricerca.Per quanto ne so, l'edizione Express è limitata all'esecuzione del livello applicazione su un server.

C'è anche il Apache Lucene progetto che è open source.Ha una bella API facile da usare e una vasta comunità di utenti.Il progetto originale è basato su Java, ma ne esistono anche altri implementazioni ad esempio NLucene per .NET che ho utilizzato personalmente.

Altri suggerimenti

Consiglierei di dare un'occhiata a SQLite: la ricerca full-text è inclusa nell'ultima versione.

Suppongo che la risposta dipenda dal tuo db.Ad esempio, SQL Server dispone della ricerca full-text e anche di query in lingua inglese, se mai necessarie.

Dai un'occhiata all'utilizzo di PostgreSQL e tsearch.

Prova a utilizzare postgresql con tsearch

Sfinge è probabilmente l'opzione più efficiente e scalabile while SQLite-FTS3 è l'opzione più semplice.

Sebbene non sia in corso, Sol è molto veloce (basato su Lucene) e facilmente accessibile da qualsiasi piattaforma (HTTP)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top