coreseek 自定义词库(四)数据过滤

条件过滤在列表中是常用的功能,使用mysql数据库和sphinx进行搜索需要安装sphinx引擎

mysql命令行中,

show engine sphinx states;

可以查看是否有  sphinxex引擎,如果没有则需要安装,否则无法使用这样的语句:

select * from documents where group_id = 2 and query=‘@title 测试;mode=extended‘;

安装sphinx引擎大家可以参考:

http://blog.zhuyin.org/807.html

http://help.fireinter.com/database/mysql/20120417/49.html

在PHP代码中:

过滤使用的方法是 SetFilter(字段, 值)

如果需要在指定的字段上查询,那么需要用到  SetMatchMode(匹配模式-- SPH_MATCH_EXTENDED)需要使用扩展模式 同时在query方法中,需要使用到 query(‘@title 测试‘, 索引名称),注意在使用上一篇的配置文件的时候需要做一些简单的修改,修改如下(红色标记,起别名主要用于区别):

完成之后重新索引即可

PHP 代码:

<?php
require(‘sphinxapi.php‘);
$sc = new SphinxClient();

$key = "测试";
$sc->SetMatchMode(SPH_MATCH_EXTENDED2); //使用扩展模式
$sc->setFilter(‘group_id‘, array(2));   //进行数据过滤
//$sc->setFilter(‘group_id‘, array(1,2));   //进行数据过滤
$res = $sc -> Query("@title $key", ‘zhl‘);

备注:

匹配模式:

sphinx提供了两种方法:SetMatchMode()  和  SetRankingMode()

SPH_MATCH_ALL:匹配所有查询词(默认模式)

SPH_MATCH_ANY: 匹配查询词中的任意一个

SPH_MATCH_PHRASE: 将整个查询看作一个词组,要求按顺序完整匹配

SPH_MATCH_BOOLEAN: 将查询看作一个布尔表达式

SPH_MATCH_EXTENDED: 将查询看作一个CoreSeek/Sphinx内部查询语言的表达式 . 从版本Coreseek 3/Sphinx 0.9.9开始, 这个选项被选项SPH_MATCH_EXTENDED2代替,它提供了更多功能和更佳的性能。

coreseek 自定义词库(四)数据过滤,布布扣,bubuko.com

时间: 2024-12-25 18:06:45

coreseek 自定义词库(四)数据过滤的相关文章

coreseek 自定义词库(三)排序 setsortmode

对于mysql获取数据,可以根据不同的条件来进行排序,同样使用coreseek也有同样的排序功能. PHP的API中只有 SetSortMode(模式,条件) 方法,他也支持多个字段一次排序. 根据上一篇的数据: require('sphinxapi.php'); $sc = new SphinxClient(); $sc->SetSortMode(SPH_SORT_ATTR_DESC, 'group_id'); $sc->SetSortMode(SPH_SORT_ATTR_ASC, 'sco

coreseek/sphinx自定义词库

1.在一些专业领域中,全文搜索需要定义专业的名词,这里以化学为例来说明自定义词库 国内只有搜狗提供公开词库 网址是:http://pinyin.sogou.com/dict/ 有些可以直接下载TXT的,有些则需要自己处理成txt文件,如果能下载txt的则只需要更改一下就可以,如果不能下载,则用其他软件或者自己手写一个,我用的是深蓝提供的词库转换工具 假设以上步骤已经完成,txt文件已经生成,则只需要下面的步骤就可以生成词库 mmseg词库的格式是 中文词 \t 1 x:1 由于生成的txt文件的

打造自己的coreseek分词词库

下面给大家介绍一下如何打造自己的coreseek分词词库. coreseek自身带的词库不是很大,直接使用它分词可能会返回大量没用结果.要想搜索结果准确打造一个专门的分词 词库必不可少. i. 首先到搜狗http://pinyin#sogou#com/dict/下载你要的词库 ii. 因为下载回来的词库不是文本文件我们不能直接使用,所以要先转换成文本文件.网上找一个搜狗转 google的小工具,用它把你下载的全部词库转成文本文件.合并为一个文件命名为words.txt.文件要用utf8编码 保存

Lucene扩展停用词字典与自定义词库

一.扩展停用词字典 IK Analyzer默认的停用词词典为IKAnalyzer2012_u6/stopword.dic,这个停用词词典并不完整,只有30多个英文停用词.可以扩展停用词字典,新增ext_stopword.dic,文件和IKAnalyzer.cfg.xml在同一目录,编辑IKAnalyzer.cfg.xml把新增的停用词字典写入配置文件,多个停用词字典用逗号隔开,如下所示. <entry key="ext_stopwords">stopword.dic;ext

IK分词器使用自定义词库

1.拷贝IKAnalyzer.cfg.xml到WEB-INF/classes下,IKAnalyzer.cfg.xml内容如下:<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">  <properties>      <comment>IK

30.IK分词器配置文件讲解以及自定义词库

主要知识点: 知道IK默认的配置文件信息 自定义词库 一.ik配置文件 ik配置文件地址:es/plugins/ik/config目录 IKAnalyzer.cfg.xml:用来配置自定义词库 main.dic:ik原生内置的中文词库,总共有27万多条,只要是这些单词,都会被分在一起 quantifier.dic:放了一些单位相关的词 suffix.dic:放了一些后缀 surname.dic:中国的姓氏 stopword.dic:英文停用词 ik原生最重要的两个配置文件 main.dic:包含

solr添加中文IK分词器,以及配置自定义词库

Solr是一个基于Lucene的Java搜索引擎服务器.Solr 提供了层面搜索.命中醒目显示并且支持多种输出格式(包括 XML/XSLT 和 JSON 格式).它易于安装和配置,而且附带了一个基于HTTP 的管理界面.Solr已经在众多大型的网站中使用,较为成熟和稳定.Solr 包装并扩展了Lucene,所以Solr的基本上沿用了Lucene的相关术语.更重要的是,Solr 创建的索引与 Lucene搜索引擎库完全兼容.通过对Solr 进行适当的配置,某些情况下可能需要进行编码,Solr 可以

Elasticsearch之中文分词器插件es-ik的自定义词库

它在哪里呢? 非常重要! [[email protected] custom]$ pwd/home/hadoop/app/elasticsearch-2.4.3/plugins/ik/config/custom[[email protected] custom]$ lltotal 5252-rw-r--r--. 1 hadoop hadoop 156 Dec 14 10:34 ext_stopword.dic-rw-r--r--. 1 hadoop hadoop 130 Dec 14 10:34

mmseg自定义分词词库

下面给大家介绍一下如何打造自己的coreseek分词词库. coreseek自身带的词库不是很大,直接使用它分词可能会返回大量没用结果.要想搜索结果准确打造一个专门的分词 词库必不可少. i. 首先到搜狗http://pinyin#sogou#com/dict/下载你要的词库 ii. 因为下载回来的词库不是文本文件我们不能直接使用,所以要先转换成文本文件.网上找一个搜狗转 google的小工具,用它把你下载的全部词库转成文本文件.合并为一个文件命名为words.txt.文件要用utf8编码 保存