Maison base de données tutoriel mysql mysql中使用sphinx搜索子域名需注意的问题

mysql中使用sphinx搜索子域名需注意的问题

Jun 07, 2016 pm 05:55 PM
sphinx

比如搜索jb51.net会把www.jb51.net、jb51.net、sc.jb51.net等都搜索出来

搜索子域名

比如搜索jb51.net会把www.jb51.net、jb51.net、host.jb51.net等都搜索出来。

如果使用mysql用like的话效率是非常低的,几百万甚至上千万的数据那是没有办法使用的,于是采取sphinx来做。

在使用的过程中发现了诸多问题,这里将其总结起来,也让不知道的朋友注意下这些字符。

分析:
sphinx是全文索引,它搜索的是包含的记录。

首先如果我们不做任何设置的话,搜索jb51.net会出现把aajb51.net、jb51.a.cn、jb51.net.com(当然这个域名后缀不存在,但是会有符合相应规则的域名,这里只举例)等等。

为什么会出现这种情况呢?

我们使用./search -c 配置文件 -i 索引名 'jb51.net' 搜索的时候会发现下面words部分被分成了两部分'jb51'和'cn',默认以.作为分隔符,如果我们不想让它做为分隔符,就需要把.添加到charset_table里面,这里需要说的是我们搜索域名只需要有字母、数字、"-"等字符,其他的不需要。设置如下:
charset_table = 0..9,A..Z->a..z, a..z,U+002e,U+002d,U+0040,U+0060 #其中U+002e代表".",U+002d代表"-",U+0040代表"@",U+0060代表"`",这里为ascii码值。
这样会解决掉搜出jb51.a.cn这类域名。

那么jb51.net.com这类呢?我们可以在索引的字段中增加惟一后缀比如“XXXXX”,concat(search,'XXXXX')这样,就不会出来了。

现在就剩下aajb51.net这类域名,我们使用关键字“ '".jb51.net"' ”(注意是单引号里面套双引号)这样来搜索,主域名单独加上,但是使用的过程中发现这样搜出了与这个域名无关的域名,比如aa.bb.cn这样,经后来研究是"."的问题,后来把"."替换成"@",来搜索又出现12306等好多域名无法读取到的问题,后来经研究估计这些特殊字符在sphinx中都有特殊的意义,于是找到了"`"这个字符,换成这个以后一切才算正常了。

注意:将"."替换成"`"等相应字符后需在charset_table里增加这个字符,不然是被忽略的。

所以在搜索的过程中我们需要注意下这些特殊字符。

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment utiliser l'extension php Sphinx pour la recherche en texte intégral Comment utiliser l'extension php Sphinx pour la recherche en texte intégral Jul 29, 2023 am 10:05 AM

Comment utiliser l'extension PHP Sphinx pour la recherche en texte intégral La recherche en texte intégral est l'une des exigences courantes des applications Web modernes. Afin de satisfaire les requêtes et la récupération efficaces des données par les utilisateurs, nous pouvons utiliser Sphinx, un puissant moteur de recherche open source, pour implémenter la fonction de recherche en texte intégral. Sphinx est écrit en C++ et fournit des extensions PHP pour faciliter notre utilisation dans les projets PHP. Cet article explique comment utiliser l'extension PHP Sphinx pour la recherche en texte intégral

Guide d'application Sphinx PHP pour implémenter la recherche en texte intégral Guide d'application Sphinx PHP pour implémenter la recherche en texte intégral Oct 03, 2023 am 08:37 AM

Guide d'application Sphinx PHP pour implémenter la recherche en texte intégral Introduction : Dans les applications Web modernes, la fonction de recherche en texte intégral est devenue une fonctionnalité nécessaire. Parce que les utilisateurs recherchent et font souvent correspondre le contenu dont ils ont besoin en saisissant des mots-clés. Afin de fournir des résultats de recherche efficaces et précis, nous avons besoin d’un moteur de recherche puissant. En tant que moteur de recherche en texte intégral open source, Sphinx fournit une solution de recherche parfaite pour PHP. Cet article explique comment utiliser Sphinx pour implémenter

Compétences d'application Sphinx PHP dans le traitement du langage naturel Compétences d'application Sphinx PHP dans le traitement du langage naturel Oct 03, 2023 am 09:53 AM

Les compétences d'application SphinxPHP en traitement du langage naturel nécessitent des exemples de code spécifiques Avec le développement d'Internet et les progrès de la technologie de l'intelligence artificielle, le traitement du langage naturel (Natural Language Processing, NLP) est devenu une direction de recherche importante en informatique. L’objectif du traitement du langage naturel est de permettre aux ordinateurs de comprendre, d’interpréter et de générer un langage naturel, rendant ainsi la communication entre les humains et les machines plus pratique et plus intelligente. Dans le traitement du langage naturel, la récupération de texte est un élément très important

Sphinx implémente des effets de recherche en temps réel pour les projets PHP Sphinx implémente des effets de recherche en temps réel pour les projets PHP Oct 03, 2023 am 09:16 AM

Sphinx est un moteur de recherche en texte intégral open source qui peut réaliser rapidement et efficacement la recherche et la récupération de données à grande échelle. Dans les projets PHP, l'utilisation de Sphinx peut obtenir des effets de recherche en temps réel et améliorer l'expérience utilisateur et la vitesse de recherche. Cet article présentera comment utiliser Sphinx dans des projets PHP et fournira des exemples de code spécifiques. 1. Installez Sphinx Pour obtenir des effets de recherche en temps réel dans les projets PHP, vous devez d'abord installer Sphinx. Il peut être trouvé sur le site officiel de Sphinx

Analyse de la méthode d'implémentation PHP de la recherche distribuée Sphinx Analyse de la méthode d'implémentation PHP de la recherche distribuée Sphinx Oct 03, 2023 am 08:49 AM

Analyse de la méthode d'implémentation PHP de la recherche distribuée Sphinx Introduction : À l'ère d'Internet d'aujourd'hui, les moteurs de recherche sont devenus l'un des principaux moyens permettant aux utilisateurs d'obtenir des informations. Afin de fournir des résultats de recherche plus efficaces et plus précis, certains sites Web ou applications à grande échelle utilisent généralement des moteurs de recherche distribués pour traiter les demandes de recherche. Sphinx est un moteur de recherche distribué bien connu avec de bonnes performances et évolutivité. Cet article explique comment utiliser PHP pour implémenter la recherche distribuée Sphinx et fournit des exemples de code spécifiques.

Sphinx implémente une recherche rapide et une optimisation du cache pour les projets PHP Sphinx implémente une recherche rapide et une optimisation du cache pour les projets PHP Oct 03, 2023 am 09:01 AM

Sphinx est un moteur de recherche en texte intégral open source capable de traiter rapidement de grandes quantités de données et de fournir des capacités de recherche efficaces. L'utilisation de Sphinx dans les projets PHP peut permettre une optimisation rapide de la recherche et du cache, améliorant ainsi les performances du projet et l'expérience utilisateur. Cet article présentera comment intégrer Sphinx dans un projet PHP et illustrera son utilisation et ses avantages à travers des exemples de code spécifiques. 1. Installation et configuration de Sphinx Pour utiliser Sphinx, vous devez d'abord l'installer et le configurer sur le serveur.

Recherche sur la méthode d'implémentation PHP de la recherche à haute disponibilité Sphinx Recherche sur la méthode d'implémentation PHP de la recherche à haute disponibilité Sphinx Oct 03, 2023 am 09:41 AM

Introduction à la recherche sur la méthode d'implémentation PHP de la recherche à haute disponibilité Sphinx : Sphinx est un moteur de recherche en texte intégral open source, qui fournit des solutions de recherche rapides, précises et évolutives. L'intégration de Sphinx dans un site Web PHP permet d'obtenir des fonctions de recherche hautement disponibles. Cet article explorera comment Sphinx est implémenté en PHP et fournira des exemples de code spécifiques. 1. Introduction à Sphinx Sphinx est un moteur de recherche en texte intégral développé en C++. Il se concentre sur la rapidité et la rapidité.

Comment effectuer une recherche et une traduction multilingues avec Sphinx PHP Comment effectuer une recherche et une traduction multilingues avec Sphinx PHP Oct 03, 2023 am 08:37 AM

La manière dont SphinxPHP effectue la recherche et la traduction multilingues nécessite des exemples de code spécifiques. Avec le développement de la mondialisation, la recherche et la traduction multilingues deviennent de plus en plus courantes dans le développement de sites Web. Sphinx est un moteur de recherche en texte intégral open source qui offre des capacités de recherche puissantes et efficaces. Lors de l'utilisation de Sphinx en combinaison avec le langage PHP pour la recherche et la traduction multilingues, nous pouvons utiliser la prise en charge multilingue de Sphinx et les fonctions de traitement de chaînes de PHP pour réaliser cette fonction. Cet article expliquera comment utiliser Sphinx

See all articles