sql >> Database >  >> RDS >> Mysql

MySQL LIKE %string% is niet vergevingsgezind genoeg. Kan ik nog iets gebruiken?

Als u MyISAM gebruikt, kunt u full-text indexeren. Bekijk deze tutorial

Als u een andere opslagengine gebruikt, kunt u een full-text-engine van derden gebruiken, zoals sphinx, die kan fungeren als een opslag-engine voor mysql of een aparte server die kan worden opgevraagd.

Met MySQL full-text indexering van een zoekopdracht op A J Kelly zou overeenkomen met AJ Kelly (niet om de zaken te verwarren, maar A, J en AJ zouden worden genegeerd omdat ze standaard te kort zijn en het zou overeenkomen met Kelly.) Over het algemeen is Fulltext veel vergevingsgezinder (en meestal sneller dan LIKE '%string%') omdat gedeeltelijke wedstrijden die vervolgens kunnen worden gerangschikt op relevantie.

U kunt ook SOUNDEX gebruiken om zoekopdrachten vergevingsgezinder te maken door de fonetische equivalenten van woorden te indexeren en deze te doorzoeken door SOUNDEX op uw zoektermen toe te passen en deze vervolgens te gebruiken om de index te doorzoeken. Met soundex mary , marie , en marry komen bijvoorbeeld allemaal overeen.



  1. C# - Hoe een orakel lange onbewerkte typewaarde te krijgen

  2. Microsoft Access gebruiken met Power BI

  3. Mysql insluiten in Java-desktoptoepassing

  4. Django bulk_create met negeerrijen die IntegrityError veroorzaken?