Sphinx 使用记录
安装 安装前需要先去官网下载源码. 目前最新版本是 2.2.5-release, 点击下载即可。 当然,如果你想直接在命令行下载,直接下载我这个版本也行,就是不知道会不会版本太久。 tiankonguse:~ $ cd /usr/local/srctiankonguse:src $ su root -tiankonguse:src #
安装
安装前需要先去官网下载源码.
目前最新版本是 2.2.5-release, 点击下载即可。
当然,如果你想直接在命令行下载,直接下载我这个版本也行,就是不知道会不会版本太久。
tiankonguse:~ $ cd /usr/local/src tiankonguse:src $ su root - tiankonguse:src # wget http://sphinxsearch.com/files/sphinx-2.2.5-release.tar.gz
然后解压缩,命令就不用说了吧
tiankonguse:src # tar zxvf filename.tar.gz
后来听说 sphinx 有两种安装方式
- 单独安装,查询时采用API调用。
- 使用插件方式把sphinx编译成一个mysql插件并使用特定的sql语句进行检索。
这里我选择第一种方式,毕竟把 sphinx 和 mysql 耦合在一起的话, 将来将成为一个很大的坑。
sphinx 查询出来的是 id, 然后会进行二次查询得到想要的数据。
下面的命令都是在 root 权限下操作的。
tiankonguse:sphinx-2.2.5-release # ./configure –prefix=/usr/local/sphinx tiankonguse:sphinx-2.2.5-release # make && make install
可以使用 --prefix 指向sphinx的安装路径 可以使用 --with-mysql 指向mysql的安装路径。
安装完毕后查看一下 /usr/local/sphinx
下是否有 三个目录 bin etc var,如有,则安装无误!
tiankonguse:sphinx-2.2.5-release # cd /usr/local/sphinx/ tiankonguse:sphinx # ls bin/ etc/ share/ var/
配置
mysql 数据源
由于我使用的是 mysql, 所以需要为 sphinx 创建对应的db。
# server:127.0.0.1 # database : d_sphinx_testdb # table: t_sphinx_article CREATE SCHEMA IF NOT EXISTS `d_sphinx_testdb` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci ; USE `d_sphinx_testdb` ; CREATE TABLE `d_sphinx_testdb`.`t_sphinx_article` ( `c_id` INT NOT NULL AUTO_INCREMENT, `c_title` VARCHAR(45) NOT NULL DEFAULT '', `c_content` VARCHAR(45) NOT NULL DEFAULT '', `c_comment_num` VARCHAR(45) NOT NULL DEFAULT 0, PRIMARY KEY (`c_id`)) ENGINE = InnoDB DEFAULT CHARACTER SET = utf8;
sphinx 配置文件
首先需要找到需要配置的文件以及需要配置的内容。
我们需要配置的是 /usr/local/sphinx/sphinx.conf 文件里面的数据库的信息。
tiankonguse:sphinx # cd etc tiankonguse:etc # tiankonguse:etc # ls example.sql sphinx-min.conf.dist sphinx.conf.dist tiankonguse:etc # cp sphinx.conf.dist sphinx.conf tiankonguse:etc # ls example.sql sphinx-min.conf.dist sphinx.conf sphinx.conf.dist skyyuan:etc $ vi sphinx.conf
可以看到下面的内容设置数据源 source
############################################################################# ## data source definition ############################################################################# source d_sphinx_testdb { # data source type. mandatory, no default value # known types are mysql, pgsql, mssql, xmlpipe, xmlpipe2, odbc type = mysql # 数据库类型 # some straightforward parameters for SQL source types #数据库主机地址 sql_host = 127.0.0.1 #数据库用户名 sql_user = root #数据库密码 sql_pass = pwd #数据库名称 sql_db = d_sphinx_testdb # 数据库采用的端口 sql_port = 3306 # pre-query, executed before the main fetch query # multi-value, optional, default is empty list of queries #执行sql前要设置的字符集 sql_query_pre = SET NAMES UTF8 # main document fetch query mandatory, integer document ID field MUST be the first selected column # 全文检索要显示的内容,在这里尽可能不使用where或group by,将where与groupby的内容交给sphinx,由sphinx进行条件过滤与groupby效率会更高 # select 出来的字段必须至少包括一个唯一主键(ARTICLESID)以及要全文检索的字段,你计划原本在where中要用到的字段也要select出来,这里不需要使用orderby sql_query = SELECT c_id,c_title,c_content,c_comment_num FROM t_sphinx_article #####以下是用来过滤或条件查询的属性############ #sql_attr_ 开头的表示一些属性字段,你原计划要用在where,orderby,groupby中的字段要在这里定义 # unsigned integer attribute declaration sql_attr_uint = c_comment_num # 无符号整数属性 sql_attr_uint = c_id # 无符号整数属性 # boolean attribute declaration # sql_attr_bool = is_deleted # bigint attribute declaration # sql_attr_bigint = my_bigint_id # UNIX timestamp attribute declaration # sql_attr_timestamp = posted_ts # floating point attribute declaration # sql_attr_float = lat_radians # string attribute declaration sql_attr_string = c_title sql_attr_string = c_content # JSON attribute declaration # sql_attr_json = properties # combined field plus attribute declaration (from a single column) # stores column as an attribute, but also indexes it as a full-text field # # sql_field_string = author }
然后设置数据源的索引
index d_sphinx_testdb_index { #数据源名 source = d_sphinx_testdb # 索引记录存放目录 path = /usr/local/sphinx/var/data/d_sphinx_testdb_index # 文档信息存储方式 docinfo = extern #缓存数据内存锁定 mlock = 0 # 形态学 morphology = none # 索引的词最小长度 min_word_len = 1 #数据编码 charset_type = utf-8 #最小前缀 min_prefix_len = 0 #最小中缀 min_infix_len = 1 } indexer { # 内存限制 mem_limit = 32M } searchd { # 监听端口 listen = 9312 # 服务进程日志 log = /usr/local/sphinx/log/searchd.log # 客户端查询日志 query_log = /usr/local/sphinx/log/query.log # 请求超时 read_timeout = 5 # 同时可执行的最大searchd 进程数 max_children = 30 #进程ID文件 pid_file = /usr/local/sphinx/log/searchd.pid # 查询结果的最大返回数 max_matches = 1000 # 是否支持无缝切换,做增量索引时通常需要 seamless_rotate = 1 }
创建索引
进入 bin 目录,执行
./indexer 索引名
错误集
libmysqlclient.so.18
但是我报下面的错误
./indexer: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or directory
原因:这主要是因为你安装库后,没有配置相应的环境变量.可以通过连接修正这个问题
sudo ln /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib/libmysqlclient.so.18
但是还是报错,原来添加一个动态库后需要重新加载动态库。
tiankonguse:bin # ldconfig
Invalid cross-device link
但是我又报错了
ln: creating hard link `/usr/lib/libmysqlclient.so.18 ' => `/usr/local/mysql/lib/libmysqlclient.so.18': Invalid cross-device link
于是我只好创建软连接了。
sudo ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib/libmysqlclient.so.18
查看检索是否启动
tiankonguse:bin # ps -ef | grep search tiankonguse 9601 1 0 Oct28 ? 00:00:00 xs-searchd: master tiankonguse 9602 9601 0 Oct28 ? 00:00:00 xs-searchd: worker[1] tiankonguse 9603 9601 0 Oct28 ? 00:00:00 xs-searchd: worker[2] tiankonguse 9604 9601 0 Oct28 ? 00:00:00 xs-searchd: worker[3] root 32637 18048 0 21:12 pts/0 00:00:00 grep search
WARNING attribute not found
执行索引的时候,看到这个错误,搜索了一下,原来主键不能加入到属性中去。
WARNING: attribute 'c_id' not found - IGNORING
参考文档 数据源配置:mysql数据源 和 WARNING: zero/NULL document_id, skipping .
ERROR index No fields in schema
ERROR: index 't_cover_sphinx_index': No fields in schema - will not index
还是在这里找到了原因。
使用sql_attr设置的字段,只能作为属性,使用SphinxClient::SetFilter()进行过滤;
未被设置的字段,自动作为全文检索的字段,使用SphinxClient::Query("搜索字符串")进行全文搜索
而我把所有字段都设置为 sql_attr 了,于是把需要全文索引的字段去掉。终于跑出一些接过来。
但是还有一些问题。
WARNING sql_query_info removed from Sphinx
WARNING: key 'sql_query_info' was permanently removed from Sphinx configuration. Refer to documentation for details.
好吧,我说怎么没有在配置文件中看到 sql_query_info 的说明呢,原来已经删除了,那就注释掉吧。
word overrun buffer
还是搜主键搜到的原因是我的主键不是一个整数,而 sphinx 要求必须是一个整数。
WARNING: source : skipped 300 document(s) with zero/NULL ids WARNING: word overrun buffer, clipped!!! WARNING: 601 duplicate document id pairs found
原文地址:Sphinx 使用记录, 感谢原作者分享。

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

Sujets chauds

Lorsque vous vous connectez au compte Steam de quelqu'un d'autre sur votre ordinateur et que le compte de cette autre personne dispose d'un logiciel de fond d'écran, Steam téléchargera automatiquement les fonds d'écran abonnés au compte de l'autre personne après être revenu à votre propre compte. Les utilisateurs peuvent résoudre ce problème en. désactiver la synchronisation du cloud Steam. Que faire si WallpaperEngine télécharge les fonds d'écran d'autres personnes après s'être connecté à un autre compte 1. Connectez-vous à votre propre compte Steam, recherchez la synchronisation cloud dans les paramètres et désactivez la synchronisation cloud Steam. 2. Connectez-vous au compte Steam de quelqu'un d'autre auquel vous vous êtes connecté auparavant, ouvrez Wallpaper Creative Workshop, recherchez le contenu de l'abonnement, puis annulez tous les abonnements. (Si vous ne trouvez pas le fond d'écran à l'avenir, vous pouvez d'abord le récupérer, puis annuler l'abonnement) 3. Revenez à votre propre Steam

CrystalDiskMark est un petit outil de référence pour disques durs qui mesure rapidement les vitesses de lecture/écriture séquentielles et aléatoires. Ensuite, laissez l'éditeur vous présenter CrystalDiskMark et comment utiliser crystaldiskmark~ 1. Introduction à CrystalDiskMark CrystalDiskMark est un outil de test de performances de disque largement utilisé pour évaluer la vitesse et les performances de lecture et d'écriture des disques durs mécaniques et des disques SSD (SSD). ). Performances d’E/S aléatoires. Il s'agit d'une application Windows gratuite qui fournit une interface conviviale et divers modes de test pour évaluer différents aspects des performances du disque dur. Elle est largement utilisée dans les revues de matériel.

Le jeu superpeople peut être téléchargé via le client Steam. La taille de ce jeu est d'environ 28 Go. Le téléchargement et l'installation prennent généralement une heure et demie. Voici un tutoriel de téléchargement et d'installation spécifique pour vous ! Nouvelle méthode pour postuler aux tests fermés globaux 1) Recherchez "SUPERPEOPLE" dans la boutique Steam (téléchargement du client Steam) 2) Cliquez sur "Demander l'accès aux tests fermés SUPERPEOPLE" en bas de la page de la boutique "SUPERPEOPLE" 3) Après avoir cliqué sur le bouton de demande d'accès, le jeu "SUPERPEOPLECBT" peut être confirmé dans la bibliothèque Steam 4) Cliquez sur le bouton d'installation dans "SUPERPEOPLECBT" et téléchargez

En tant qu'outil de disque réseau pratique et pratique, Quark peut aider les utilisateurs à obtenir facilement leurs ressources préférées. Que faire si vous souhaitez télécharger un fichier localement ? Laissez l’éditeur vous le dire maintenant, apprenons-le ensemble ! Comment télécharger Quark Network Disk vers le partage local 1. Ouvrez d'abord le logiciel Quark, entrez dans la page d'accueil et cliquez sur l'[icône Cloud] en bas à droite ; 2. Ensuite, sur la page Quark Network Disk, cliquez sur la fonction [Document] ; 3. Accédez ensuite à la page du document, sélectionnez le fichier que vous souhaitez télécharger et cliquez sur [l'icône à trois points] 4. Après le dernier clic, nous cliquons sur [Télécharger] dans la boîte de dialogue contextuelle ;

L'installation d'applications Android sur Linux a toujours été une préoccupation pour de nombreux utilisateurs. Surtout pour les utilisateurs Linux qui aiment utiliser des applications Android, il est très important de maîtriser comment installer des applications Android sur les systèmes Linux. Bien qu'exécuter des applications Android directement sur Linux ne soit pas aussi simple que sur la plateforme Android, en utilisant des émulateurs ou des outils tiers, nous pouvons toujours profiter avec plaisir des applications Android sur Linux. Ce qui suit explique comment installer des applications Android sur les systèmes Linux.

Le stockage cloud est devenu aujourd’hui un élément indispensable de notre vie quotidienne et de notre travail. En tant que l'un des principaux services de stockage cloud en Chine, Baidu Netdisk a gagné la faveur d'un grand nombre d'utilisateurs grâce à ses puissantes fonctions de stockage, sa vitesse de transmission efficace et son expérience de fonctionnement pratique. Et que vous souhaitiez sauvegarder des fichiers importants, partager des informations, regarder des vidéos en ligne ou écouter de la musique, Baidu Cloud Disk peut répondre à vos besoins. Cependant, de nombreux utilisateurs peuvent ne pas comprendre l'utilisation spécifique de l'application Baidu Netdisk, ce didacticiel vous présentera donc en détail comment utiliser l'application Baidu Netdisk. Si vous êtes toujours confus, veuillez suivre cet article pour en savoir plus ! Comment utiliser Baidu Cloud Network Disk : 1. Installation Tout d'abord, lors du téléchargement et de l'installation du logiciel Baidu Cloud, veuillez sélectionner l'option d'installation personnalisée.

UC Browser est un navigateur que tout le monde utilise. Il permet à chacun de vivre une expérience en ligne unique. Il est très pratique et peut rechercher une variété de ressources pour vous, dont certaines dont vous ne pouvez pas profiter sur d'autres plateformes. fonctionne ici. Le contenu est très excitant. Tout le monde est immergé dedans et ne peut pas s'arrêter du tout. Ils souhaitent également télécharger la vidéo localement afin de pouvoir la regarder à tout moment. Je l'ai regardé, c'était très pratique, j'ai réglé la méthode spécifique de téléchargement de la vidéo, j'espère que cela pourra vous aider. Comment télécharger des vidéos sur l'ordinateur local via UC Browser : 1. Ouvrez UC Browser, cliquez sur la barre de menu et sélectionnez Télécharger/Vidéo ; 2. Cliquez sur la vidéo mise en cache. 3. Cliquez sur la sélection vidéo ;

NetEase Mailbox, en tant qu'adresse e-mail largement utilisée par les internautes chinois, a toujours gagné la confiance des utilisateurs grâce à ses services stables et efficaces. NetEase Mailbox Master est un logiciel de messagerie spécialement créé pour les utilisateurs de téléphones mobiles. Il simplifie grandement le processus d'envoi et de réception d'e-mails et rend le traitement de nos e-mails plus pratique. Alors comment utiliser NetEase Mailbox Master, et quelles sont ses fonctions spécifiques Ci-dessous, l'éditeur de ce site vous donnera une introduction détaillée, en espérant vous aider ! Tout d’abord, vous pouvez rechercher et télécharger l’application NetEase Mailbox Master dans la boutique d’applications mobiles. Recherchez « NetEase Mailbox Master » dans l'App Store ou Baidu Mobile Assistant, puis suivez les instructions pour l'installer. Une fois le téléchargement et l'installation terminés, nous ouvrons le compte de messagerie NetEase et nous connectons. L'interface de connexion est la suivante
