搜尋
首頁資料庫mysql教程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里增加这个字符,不然是被忽略的。

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

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
如何使用php扩展Sphinx进行全文搜索如何使用php扩展Sphinx进行全文搜索Jul 29, 2023 am 10:05 AM

如何使用PHP扩展Sphinx进行全文搜索全文搜索是现代Web应用程序中的常见需求之一。为了满足用户对数据的高效查询和检索,我们可以使用Sphinx这个功能强大的开源搜索引擎来实现全文搜索功能。Sphinx使用C++编写,提供了PHP的扩展,方便我们在PHP项目中使用。本文将介绍如何使用PHP扩展Sphinx进行全文搜索

Sphinx 实现全文搜索的 PHP 应用指南Sphinx 实现全文搜索的 PHP 应用指南Oct 03, 2023 am 08:37 AM

Sphinx实现全文搜索的PHP应用指南引言:在现代的Web应用中,全文搜索功能已经成为了一个必备的特性。因为用户常常会通过输入关键词来搜索和匹配他们所需要的内容。为了提供高效和准确的搜索结果,我们需要一个强大的搜索引擎。而Sphinx作为一个开源的全文搜索引擎,它为PHP提供了一个完美的搜索解决方案。本文将介绍如何使用Sphinx实现

Sphinx PHP 在自然语言处理中的应用技巧Sphinx PHP 在自然语言处理中的应用技巧Oct 03, 2023 am 09:53 AM

SphinxPHP在自然语言处理中的应用技巧,需要具体代码示例随着互联网的发展和人工智能技术的进步,自然语言处理(NaturalLanguageProcessing,NLP)成为了计算机科学中一个重要的研究方向。自然语言处理的目标是让计算机能够理解、解释和生成自然语言,使得人与机器之间的交流更加便捷和智能化。在自然语言处理中,文本检索是一个非常重要

Sphinx 实现 PHP 项目的实时搜索效果Sphinx 实现 PHP 项目的实时搜索效果Oct 03, 2023 am 09:16 AM

Sphinx是一个开源的全文搜索引擎,可以快速、高效地实现大规模数据的搜索和检索。在PHP项目中,使用Sphinx可以实现实时搜索效果,提升用户体验和搜索速度。本文将介绍如何在PHP项目中使用Sphinx,并提供具体的代码示例。一、安装Sphinx要在PHP项目中实现实时搜索效果,首先需要安装Sphinx。可以在Sphinx的官方

Sphinx 分布式搜索的 PHP 实现方法解析Sphinx 分布式搜索的 PHP 实现方法解析Oct 03, 2023 am 08:49 AM

Sphinx分布式搜索的PHP实现方法解析引言:在当今互联网时代,搜索引擎已经成为人们获取信息的主要方式之一。为了提供更高效、更准确的搜索结果,一些大规模的网站或应用程序通常会使用分布式搜索引擎来处理搜索请求。Sphinx是一种知名的分布式搜索引擎,具有良好的性能和扩展性。本文将介绍如何使用PHP实现Sphinx分布式搜索,并提供具体的代码示

Sphinx 实现 PHP 项目的快速搜索与缓存优化Sphinx 实现 PHP 项目的快速搜索与缓存优化Oct 03, 2023 am 09:01 AM

Sphinx是一款开源的全文搜索引擎,它能够快速地处理大量的数据并提供高效的搜索功能。在PHP项目中使用Sphinx,可以实现快速的搜索和缓存优化,提升项目的性能和用户体验。本文将介绍如何在PHP项目中集成Sphinx,并通过具体的代码示例来说明其使用方法和优势。一、Sphinx的安装与配置要使用Sphinx,首先需要在服务器上进行安装并进

Sphinx 高可用搜索的 PHP 实现方法研究Sphinx 高可用搜索的 PHP 实现方法研究Oct 03, 2023 am 09:41 AM

Sphinx高可用搜索的PHP实现方法研究导语:Sphinx是一个开源的全文搜索引擎,它提供了快速、准确和可扩展的搜索解决方案。在PHP网站中集成Sphinx可以实现高可用的搜索功能。本文将探讨Sphinx在PHP中的实现方法,并提供具体的代码示例。一、Sphinx简介Sphinx是一款C++开发的全文搜索引擎,它专注于快速和

Sphinx 进行 PHP 语言搜索优化的实践方法Sphinx 进行 PHP 语言搜索优化的实践方法Oct 03, 2023 am 09:24 AM

Sphinx进行PHP语言搜索优化的实践方法,需要具体代码示例摘要:Sphinx是一个功能强大的开源搜索引擎工具,可用于在Web应用程序中实现高效的搜索功能。本文将介绍如何使用Sphinx进行PHP语言搜索优化,并提供详细的代码示例。导语:随着互联网的快速发展,用户对搜索功能的需求也不断增加。针对大规模数据的高效搜索以及搜索结果的准确性,

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器