Rumah pangkalan data tutorial 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里增加这个字符,不然是被忽略的。

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

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Cara menggunakan sambungan php Sphinx untuk carian teks penuh Cara menggunakan sambungan php Sphinx untuk carian teks penuh Jul 29, 2023 am 10:05 AM

Cara menggunakan sambungan PHP Sphinx untuk carian teks penuh Carian teks penuh ialah salah satu keperluan biasa dalam aplikasi web moden. Untuk memenuhi pertanyaan cekap pengguna dan mendapatkan semula data, kami boleh menggunakan Sphinx, enjin carian sumber terbuka yang berkuasa, untuk melaksanakan fungsi carian teks penuh. Sphinx ditulis dalam C++ dan menyediakan sambungan PHP untuk memudahkan penggunaan kami dalam projek PHP. Artikel ini akan memperkenalkan cara menggunakan sambungan PHP Sphinx untuk carian teks penuh

Panduan aplikasi Sphinx PHP untuk melaksanakan carian teks penuh Panduan aplikasi Sphinx PHP untuk melaksanakan carian teks penuh Oct 03, 2023 am 08:37 AM

Pengenalan kepada panduan aplikasi PHP untuk melaksanakan carian teks penuh dengan Sphinx: Dalam aplikasi Web moden, fungsi carian teks penuh telah menjadi ciri penting. Kerana pengguna sering mencari dan memadankan kandungan yang mereka perlukan dengan memasukkan kata kunci. Untuk memberikan hasil carian yang cekap dan tepat, kami memerlukan enjin carian yang berkuasa. Sebagai enjin carian teks penuh sumber terbuka, Sphinx menyediakan penyelesaian carian yang sempurna untuk PHP. Artikel ini akan memperkenalkan cara menggunakan Sphinx untuk melaksanakan

Kemahiran aplikasi PHP Sphinx dalam pemprosesan bahasa semula jadi Kemahiran aplikasi PHP Sphinx dalam pemprosesan bahasa semula jadi Oct 03, 2023 am 09:53 AM

Kemahiran aplikasi SphinxPHP dalam pemprosesan bahasa semula jadi memerlukan contoh kod khusus Dengan perkembangan Internet dan kemajuan teknologi kecerdasan buatan, pemprosesan bahasa semula jadi (Natural Language Processing, NLP) telah menjadi hala tuju penyelidikan yang penting dalam sains komputer. Matlamat pemprosesan bahasa semula jadi adalah untuk membolehkan komputer memahami, mentafsir dan menjana bahasa semula jadi, menjadikan komunikasi antara manusia dan mesin lebih mudah dan pintar. Dalam pemprosesan bahasa semula jadi, pengambilan teks adalah sangat penting

Sphinx melaksanakan kesan carian masa nyata untuk projek PHP Sphinx melaksanakan kesan carian masa nyata untuk projek PHP Oct 03, 2023 am 09:16 AM

Sphinx ialah enjin carian teks penuh sumber terbuka yang boleh merealisasikan carian dan mendapatkan semula data berskala besar dengan cepat dan cekap. Dalam projek PHP, menggunakan Sphinx boleh mencapai kesan carian masa nyata dan meningkatkan pengalaman pengguna dan kelajuan carian. Artikel ini akan memperkenalkan cara menggunakan Sphinx dalam projek PHP dan memberikan contoh kod khusus. 1. Pasang Sphinx Untuk mencapai kesan carian masa nyata dalam projek PHP, anda perlu memasang Sphinx terlebih dahulu. Ia boleh didapati di laman web rasmi Sphinx

Analisis kaedah pelaksanaan PHP bagi carian teragih Sphinx Analisis kaedah pelaksanaan PHP bagi carian teragih Sphinx Oct 03, 2023 am 08:49 AM

Analisis kaedah pelaksanaan PHP bagi carian teragih Sphinx Pengenalan: Dalam era Internet hari ini, enjin carian telah menjadi salah satu cara utama untuk orang ramai mendapatkan maklumat. Untuk memberikan hasil carian yang lebih cekap dan tepat, sesetengah tapak web atau aplikasi berskala besar biasanya menggunakan enjin carian teragih untuk memproses permintaan carian. Sphinx ialah enjin carian teragih yang terkenal dengan prestasi dan kebolehskalaan yang baik. Artikel ini akan memperkenalkan cara menggunakan PHP untuk melaksanakan carian teragih Sphinx dan memberikan contoh kod khusus.

Sphinx melaksanakan carian pantas dan pengoptimuman cache bagi projek PHP Sphinx melaksanakan carian pantas dan pengoptimuman cache bagi projek PHP Oct 03, 2023 am 09:01 AM

Sphinx ialah enjin carian teks penuh sumber terbuka yang boleh memproses sejumlah besar data dengan pantas dan menyediakan keupayaan carian yang cekap. Menggunakan Sphinx dalam projek PHP boleh mencapai carian pantas dan pengoptimuman cache, meningkatkan prestasi projek dan pengalaman pengguna. Artikel ini akan memperkenalkan cara mengintegrasikan Sphinx dalam projek PHP dan menggambarkan penggunaan dan kelebihannya melalui contoh kod tertentu. 1. Pemasangan dan konfigurasi Sphinx Untuk menggunakan Sphinx, anda perlu memasang dan mengkonfigurasinya pada pelayan terlebih dahulu.

Penyelidikan tentang kaedah pelaksanaan PHP bagi carian ketersediaan tinggi Sphinx Penyelidikan tentang kaedah pelaksanaan PHP bagi carian ketersediaan tinggi Sphinx Oct 03, 2023 am 09:41 AM

Pengenalan penyelidikan tentang kaedah pelaksanaan PHP bagi carian ketersediaan tinggi Sphinx: Sphinx ialah enjin carian teks penuh sumber terbuka, yang menyediakan penyelesaian carian yang pantas, tepat dan berskala. Mengintegrasikan Sphinx ke dalam laman web PHP boleh mencapai fungsi carian yang sangat tersedia. Artikel ini akan meneroka cara Sphinx dilaksanakan dalam PHP dan menyediakan contoh kod khusus. 1. Pengenalan kepada Sphinx Sphinx ialah enjin carian teks penuh yang dibangunkan dalam C++ Ia memfokuskan pada pantas dan

Cara melakukan carian dan terjemahan berbilang bahasa dengan Sphinx PHP Cara melakukan carian dan terjemahan berbilang bahasa dengan Sphinx PHP Oct 03, 2023 am 08:37 AM

Cara SphinxPHP melakukan carian dan terjemahan berbilang bahasa memerlukan contoh kod khusus Dengan perkembangan globalisasi, carian dan terjemahan berbilang bahasa menjadi semakin biasa dalam pembangunan laman web. Sphinx ialah enjin carian teks penuh sumber terbuka yang menyediakan keupayaan carian yang berkuasa dan cekap. Apabila menggunakan Sphinx dalam kombinasi dengan bahasa PHP untuk carian dan terjemahan berbilang bahasa, kami boleh menggunakan sokongan berbilang bahasa Sphinx dan fungsi pemprosesan rentetan PHP untuk mencapai fungsi ini. Artikel ini akan memperkenalkan cara menggunakan Sphinx

See all articles