1.ngram and MeCab full-text parser plugins 全文检索在MySQL里面很早就支持了,只不过一直以来只支持英文.缘由是他从来都使用空格来作为分词的分隔符,而对于中文来讲,显然用空格就不合适,需要针对中文语义进行分词.但从MySQL 5.7开始,MySQL内置了ngram全文检索插件,用来支持中文分词,并且对MyISAM和InnoDB引擎有效. 2.必要的参数设置 在使用中文检索分词插件ngram之前,先得在MySQL配置文件里面设置他的分词大小(默认是2),…
现在我们数据库表中的记录大约在17万,每一条记录都有name字段,根据name做模糊匹配,效率非常低下. 表结构如下: create table T ( id int, name ) ); 总数据量如下: mysql> select count(*) from T; +----------+ | count(*) | +----------+ | +----------+ row in set (0.00 sec) 按照名称进行模糊匹配执行结果如下,用时0.29秒: mysql> select…
在oracle 9i之前,对中文的排序,是默认按2进制编码来进行排序的. 9i时增加了几种新的选择: 按中文拼音进行排序:SCHINESE_PINYIN_M 按中文部首进行排序:SCHINESE_RADICAL_M 按中文笔画进行排序:SCHINESE_STROKE_M 而oracle 9i是对中文的排序是默认按拼音排序(并不是指NLS_SORT = SCHINESE_PINYIN_M,而是说SQL中不指定NLS_SORT时对中文列排序时默认按拼音)的,跟之前的2进制编码排序有所不同.具体用法如…
windows xp + mysql5.5 + phpmyadmin insert 中文繁體 今天也發生了,無法insert成功的問題: 在phpmyadmin 或doc下連接mysql執行都不行: my.ini 中 default-character-set=latin1: google了下,都說要用gbk 的編碼方式:但是我的要求是big5呀, 所以就想用utf8,但是配置了default-character-set=utf8 然后, net stop mysql net start mys…
目录 环境 更新软件包 部署 Raneto 知识库平台 安装 Node 环境 安装 node 管理工具 查看 node 列表 安装需要的Node版本 使用 淘宝NPM源 git 使用代理设置,大陆地区访问git受限,故*** 安装Raneto知识库平台 Raneto 中文搜索支持 备份其lunr包 下载支持中文搜索的lunr包,重命名为lunr文件夹 复制支持中文搜索的lunr.js文件到Raneto/app/core目录下 修改Raneto/app/core/search.js文件 安装 no…
背景 因业务部门需要在线软件使用说明文档,但我们资源不足,故我想找一个开源的知识库,发现 Raneto不错,决定使用. 官方文档相当清晰,部署完成,发布一些文章,启动项目,交由业务同事测试使用,于是我收到 中文搜索 不支持反馈.查看其配置文件 example/config.default.js // Support search with extra languages searchExtraLanguages: ['ru'],在 `Raneto/node_modules/lunr-langua…
Node.js中针对中文的查找和替换无效的解决方法.   //tags的值: tag,测试,帖子 var pos1 = tags.indexOf("测"); //这里返回-1 tags = tags.replace(/,/g, ","); //这里的全角逗号没有被替换成半角逗号   怎么回事那? [解决方法] 在菜单中选择将当前代码文件另存,会发现原来的编码是Chinese Simplified GB2323, 选择UTF8另存一下,再执行就正常了.…
在oracle 9i之前,对中文的排序,是默认按2进制编码来进行排序的. 9i时增加了几种新的选择: 按中文拼音进行排序:SCHINESE_PINYIN_M 按中文部首进行排序:SCHINESE_RADICAL_M 按中文笔画进行排序:SCHINESE_STROKE_M 而oracle 9i是对中文的排序是默认按拼音排序(并不是指NLS_SORT = SCHINESE_PINYIN_M,而是说SQL中不指定NLS_SORT时对中文列排序时默认按拼音)的,跟之前的2进制编码排序有所不同.具体用法如…
在oracle 9i之前,对中文的排序,是默认按2进制编码来进行排序的. 9i时增加了几种新的选择: 按中文拼音进行排序:SCHINESE_PINYIN_M 按中文部首进行排序:SCHINESE_RADICAL_M 按中文笔画进行排序:SCHINESE_STROKE_M 而oracle 9i是对中文的排序是默认按拼音排序(并不是指NLS_SORT = SCHINESE_PINYIN_M,而是说SQL中不指定NLS_SORT时对中文列排序时默认按拼音)的,跟之前的2进制编码排序有所不同.具体用法如…
helm-mode打开文件支持中文搜索 */--> code {color: #FF0000} pre.src {background-color: #002b36; color: #839496;} helm-mode打开文件支持中文搜索 Table of Contents 1. 效果 2. pinyin-search 3. helm-find-files中的拼音搜索 4. helm-multi-files和helm-projectile中的拼音搜索 4.1. match 4.2. searc…
一.插件安装 之前使用Chrome浏览器,习惯在地址栏中直接进行中文搜索.转到Firefox之后,突然发现在地址栏进行中文搜索,访问速度会很慢. 可以使用插件解决这个问题:Omnibar 插件地址:https://addons.mozilla.org/zh-CN/firefox/addon/omnibar/ 二.添加搜索引擎 安装之后默认使用Google搜索,如图.…
标签:SQL SERVER/MSSQL SERVER/数据库/DBA/全文索引 概述 全文引擎使用全文索引中的信息来编译可快速搜索表中的特定词或词组的全文查询.全文索引将有关重要的词及其位置的信息存储在数据库表的一列或多列中.全文索引是一种特殊类型的基于标记的功能性索引,它是由 SQL Server 全文引擎生成和维护的.生成全文索引的过程不同于生成其他类型的索引.全文引擎并非基于特定行中存储的值来构造 B 树结构,而是基于要编制索引的文本中的各个标记来生成倒排.堆积且压缩的索引结构.在 SQL…
什么是Sphinx Sphinx 是一个全文检索引擎,一般而言,Sphinx是一个独立的搜索引擎,意图为其它应用提供快速.低空间占用.高结果相关度的全文搜索功能.Sphinx能够很easy的与SQL数据库和脚本语言集成.当前系统内置MySQL和PostgreSQL 数据库数据源的支持.也支持从标准输入读取特定格式的XML数据.通过改动源码.用户能够自行添加新的数据源(比如:其它类型的DBMS的原生支持). Sphinx的特性  快速的建立索引(在当代CPU上,峰值性能可达到10 MB/秒);…
问题来源:字符编码问题导致ArcMap中字符乱码或显示不正常,因而在F:\Program Files\ArcGIS\Server\framework\runtime\tomcat\conf中server.xml把URIEncoding="utf-8"加上 <!-- A "Connector" represents an endpoint by which requests are received and responses are returned. Doc…
在使用mysql5.7时,会发现通过web端向数据库中写入中文后会出现乱码,但是在数据库中直接操作SQL语句插入数据后中文就显示正常,这个问题怎么解决呢?此处不对mysql的数据编码过程和原理进行讲解,如果有兴趣的同学可以自己百度. 下面我们就直接使用如下操作解决: 一.打开mysql控制台,输入命令show variables like 'character%'; 显示如下: +--------------------------+-------------------------------…
第一,你的系统需要安装jieba类库, pip install jieba 第二,接下来修改sphinx的conf.py文件,为项目设置为中文的搜索配置. # Language to be used for generating the HTML full-text search index. # Sphinx supports the following languages: # 'da', 'de', 'en', 'es', 'fi', 'fr', 'hu', 'it', 'ja' # 'n…
Elasticsearch是一个建立在全文搜索引擎 Apache Lucene™ 基础上的搜索引擎,功能强大,最近刚好要研究搜索这一块,简要记录备日后查阅 安装Java JDK,由于Lucene是用Java开发的,所以需要安装JVM 从JAVA官网下载JDK安装包,注意,由于后面我们安装中文分词插件需要装maven,所以安装的必须是JDK包而不是JRE 通过RPM -ivh 命令安装下好的安装包 编辑配置文件,将安装好的java路径加入环境变量 #vim /etc/profile 在里面添加如下…
对于前端的搜索内容进行控制,比如敏感词过滤,同样使用socket,这里使用Python语言做一个demo.这里不得不感叹一句,socket真是太神奇了,可以跨语言把功能封装,为前端提供服务. 下面就是一个Python通过socket提供敏感词过滤的demo:https://github.com/1049451037/sensitive_word_filter_socket_server 其中打开myserver.py开始监听,提供敏感词过滤服务.keywords里面存放敏感词,这里使用的敏感词过…
coreseek的安装和使用 准备软件包 coreseek-3.2.14.tar.gz 其他汁源 coreseek中文索引-示例文件.zip sphinx配置文件详解.txt 1.安装组件 yum -y install make gcc g++ gcc-c++ libtool autoconf automake imake mysql-devel libxml2-devel expat-devel 2.安装mmseg $ cd /usr/local/tools/ $ tar xf coresee…
遇到的问题 检索葡萄糖关键字,希望结果仅包含葡萄糖,不包含葡萄:检索葡萄,希望结果包含葡萄糖. 同义词如何配置 如何确保搜索关键词被正确分词 分析器分词流程 分析器扮演着非常重要的角色,ES提供的有内置的分析器,社区也提供各种分析器插件(如中文的ik分析器).分析器由以下几个组件构成 字符过滤器 主要职责是在分词器前过滤字符流,在源字符流中添加.删除.替换字符.一个分析器中可以有0个或多个字符过滤器.主要包括:html char filter.mapping char filter等 分词器 主…
配置文件 # # Minimal Sphinx configuration sample (clean, simple, functional) # source post { type = mysql sql_host = 192.168.33.90 sql_user = root sql_pass = root sql_db = test sql_port = 3306 # optional, default is 3306 sql_sock = /tmp/mysql.sock sql_qu…
导入头文件 #import "ChineseInclude.h"#import "PinYinForObjc.h" NSMutableArray *searchResults;//可变数组,添加搜索到的数据 设置数据源 - (NSArray *)dataArray { if (!_dataArray) { _dataArray = @[@"百度",@"六六",@"谷歌",@"苹果",@&…
1)按笔画排序 select * from Table order by nlssort(columnName,'NLS_SORT=SCHINESE_STROKE_M') 2)按部首排序 select * from Table order by nlssort(columnName,'NLS_SORT=SCHINESE_RADICAL_M') 3)按拼音排序 select * from Table order by nlssort(columnName,'NLS_SORT=SCHINESE_PI…
query = "(user can be admin)"  -> check all fields for the given words. If all words are found in a combination of any  fields, document is a match. query = @(title,content) (user can be admin)"  -> check title and content fields for…
首先,new一个java project,名字叫做LuceneTools. 然后,在project里new一个class,名字叫做IndexFiles.这个类用来给文件建索引(建好索引以后就可以高效检索了). 在写代码之前,我们要先引入一下lucene包,就类似于C语言里的include.如图: 点击之后看到如下窗口,选择“Add External JARs” 然后找到C:\Lucene-6.2.1目录下(如果是按上一篇文章配置的话应该是在这个目录里)的三个包(这里我们暂时只用到这三个包)引入工…
在讲解Lucene索引和检索的原理之前,我们先来实战Lucene:一个简单的小程序! 一.索引小程序 首先,new一个java project,名字叫做LuceneIndex. 然后,在project里new一个class,名字叫做Indexer.这个类用来给文件建索引(建好索引以后就可以高效检索了). 在写代码之前,我们要先引入一下lucene包.分为三步: 1. 创建lib文件夹. 2. 将所需要的lucene包复制到lib文件夹中. 3. Build path-> lib->Config…
[文章+程序 作者:张宴 本文版本:v1.0 最后修改:2008.07.01 转载请注明原文链接:http://blog.zyan.cc/post/356/] MySQL在高并发连接.数据库记录数较多的情况下,SELECT ... WHERE ... LIKE '%...%'的全文搜索方式不仅效率差,而且以通配符%和_开头作查询时,使用不到索引,需要全表扫描,对数据库的压力也很大.MySQL针对这一问题提供了一种全文索引解决方案,这不仅仅提高了性能和效率(因为MySQL对这些字段做了索引来优化搜…
Sphinx + Coreseek 实现中文分词搜索 Sphinx Coreseek 实现中文分词搜索 全文检索 1 全文检索 vs 数据库 2 中文检索 vs 汉化检索 3 自建全文搜索与使用Google等第三方站点提供的站内全文搜索的差别 Sphinx Coreseek介绍 Coreseek安装使用 1. 全文检索 1.1 全文检索 vs. 数据库 全文检索是数据库的有力补充,全文检索并不能替代数据库在应用系统中的作用.当应用系统的数据以大量的文本信息为主时,採用全文检索技术能够极大的提升应…
数据库检索效率时,一般首要优化途径是从索引入手,然后根据需求再考虑更复杂的负载均衡.读写分离和分布式水平/垂直分库/表等手段:索引通过信息冗余来提高检索效率,其以空间换时间并会降低数据写入的效率:因此对索引字段的选择非常重要. Neo4j可对指定Label的Node Create Index,当新增/更新符合条件的Node属性时,Index会自动更新.Neo4j Index默认采用Lucene实现(可定制,如Spatial Index自定义实现的RTree索引),但默认新建的索引只支持精确匹配(…
关于Solr搜索标点与符号的中文分词你必须知道的(mmseg源码改造) 摘要:在中文搜索中的标点.符号往往也是有语义的,比如我们要搜索“C++”或是“C#”,我们不希望搜索出来的全是“C”吧?那样对程序员来说是个噩梦.然而在中文分词工具mmseg中,它的中文分词是将标点与符号均去除的,它认为对于中文来讲标点符号无意义,这明显不能满足我们的需求.那么怎样改造它让它符合我们的要求呢?本文就是针对这一问题的详细解决办法,我们改mmseg的源代码. 关键字:Solr, mmseg, 中文, 分词, 标点…