mysql中使用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里增加这个字符,不然是被忽略的。
所以在搜索的过程中我们需要注意下这些特殊字符。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









全文検索に PHP 拡張機能 Sphinx を使用する方法 全文検索は、最新の Web アプリケーションにおける一般的な要件の 1 つです。ユーザーの効率的なクエリとデータの取得を満たすために、強力なオープンソース検索エンジンである Sphinx を使用して全文検索機能を実装できます。 Sphinx は C++ で書かれており、PHP プロジェクトでの使用を容易にする PHP 拡張機能を提供します。この記事では、PHP拡張機能Sphinxを使って全文検索を行う方法を紹介します。

Sphinx を使用して全文検索を実装するための PHP アプリケーション ガイドの紹介: 最新の Web アプリケーションでは、全文検索機能が不可欠な機能になっています。ユーザーはキーワードを入力して必要なコンテンツを検索して一致させることが多いためです。効率的かつ正確な検索結果を提供するには、強力な検索エンジンが必要です。オープンソースの全文検索エンジンとして、Sphinx は PHP に最適な検索ソリューションを提供します。この記事ではSphinxを使って実装する方法を紹介します。

自然言語処理における SphinxPHP アプリケーション スキルには、特定のコード サンプルが必要です。インターネットの発展と人工知能技術の進歩に伴い、自然言語処理 (自然言語処理、NLP) はコンピューター サイエンスにおける重要な研究方向となっています。自然言語処理の目標は、コンピューターが自然言語を理解し、解釈し、生成できるようにして、人間と機械の間のコミュニケーションをより便利でインテリジェントなものにすることです。自然言語処理において、テキスト検索は非常に重要です。

Sphinx は、大規模なデータの検索と取得を迅速かつ効率的に実現できるオープンソースの全文検索エンジンです。 PHP プロジェクトでは、Sphinx を使用すると、リアルタイムの検索効果が得られ、ユーザー エクスペリエンスと検索速度が向上します。この記事では、PHP プロジェクトで Sphinx を使用する方法を紹介し、具体的なコード例を示します。 1. Sphinx のインストール PHP プロジェクトでリアルタイム検索効果を実現するには、まず Sphinx をインストールする必要があります。スフィンクスの公式ウェブサイトで見つけることができます

Sphinx 分散検索の PHP 実装方法の分析 はじめに: 今日のインターネット時代において、検索エンジンは人々が情報を入手する主な方法の 1 つとなっています。より効率的で正確な検索結果を提供するために、一部の大規模な Web サイトやアプリケーションでは通常、分散検索エンジンを使用して検索リクエストを処理します。 Sphinx は、優れたパフォーマンスとスケーラビリティを備えたよく知られた分散型検索エンジンです。この記事では、PHP を使用して Sphinx 分散検索を実装する方法を紹介し、具体的なコード例を示します。

Sphinx は、大量のデータを迅速に処理し、効率的な検索機能を提供するオープン ソースの全文検索エンジンです。 PHP プロジェクトで Sphinx を使用すると、高速な検索とキャッシュの最適化が実現し、プロジェクトのパフォーマンスとユーザー エクスペリエンスが向上します。この記事では、Sphinx を PHP プロジェクトに統合する方法を紹介し、具体的なコード例を通じてその使用法と利点を説明します。 1. Sphinx のインストールと設定 Sphinx を使用するには、まずサーバーに Sphinx をインストールして設定する必要があります。

Sphinx 高可用性検索の PHP 実装方法に関する研究紹介: Sphinx は、高速、正確、スケーラブルな検索ソリューションを提供するオープンソースの全文検索エンジンです。 Sphinx を PHP Web サイトに統合すると、可用性の高い検索機能を実現できます。この記事では、PHP で Sphinx を実装する方法を検討し、具体的なコード例を示します。 1. Sphinx の概要 Sphinx は、C++ で開発された全文検索エンジンです。

SphinxPHP が多言語検索と翻訳を実行する方法には、特定のコード サンプルが必要です。グローバリゼーションの発展に伴い、Web サイト開発では多言語検索と翻訳がますます一般的になってきています。 Sphinx は、強力かつ効率的な検索機能を提供するオープン ソースの全文検索エンジンです。多言語の検索と翻訳のために Sphinx を PHP 言語と組み合わせて使用する場合、Sphinx の多言語サポートと PHP の文字列処理関数を使用してこの機能を実現できます。この記事ではSphinxの使い方を紹介します。
