postgresql+zhparser 模糊搜索出现 NOTICE: text-search query contains only stop words or doesn't contain lexemes, ignored

Kcelone:在做项目过程中,使用了 postgresql 数据库,因为数据存储的都是 jsonb 格式的数据块,需要支持模糊搜索,本来使用的 bamboo,但对 postgresql 版本支持不够友好,后来使用了 zhparser, 具体安装部署,去 git 上找吧,不说了,给个链接 https://github.com/amutu/zhparser
具体用法看 readme 。
在使用过程中遇到一个问题:text-search query contains only stop words or doesn't contain lexemes, ignored, 中文就是:注意: 文本搜索查询只包含结束词或者不包含词汇单位, 被忽略 。(不信就谷翻一下, 没差的 0_o )

查了些资料,看了一些国内外大神写的博客,推荐一篇: http://www.postgres.cn/v2/news/viewone/1/215

确保下面几个方面:

1. zhparser 解析器及 scws 词典正确安装。

2. 查看数据库的编码(对于 postgresql 数据库来说,就是执行 \l 进行查看),要是 UTF8|zh_CN.UTF-8 | zh_CN.UTF-8 格式的。

3. (本点也是根本解决了我的问题), 执行 ALTER TEXT SEARCH CONFIGURATION testzhcfg ADD MAPPING FOR n,v,a,i,e,l,j WITH simple; 修改全文搜索配置 token 映射。

!> 注:当安装完毕之后 执行 select to_tsvector('testzhcfg', '好看女子千千万,一切如作白骨观'); 如果只是出现了查询结果为 t,却没有显示分词效果,就说明你少了 token 映射.

4. 如果对于分词不理想,可以修改一下 postgresql 的 postgresql.conf 文件,增加下面几行:

	zhparser.multi_short = true #短词复合: 1
	zhparser.multi_duality = true  #散字二元复合: 2
	zhparser.multi_zmain = true  #重要单字复合: 4
	zhparser.multi_zall = false  #全部单字复合: 8


btw: ts_debug, to_tsvector, to_tsquery 可以做些测试.



基本就是这样了,多想多试。
大公司边缘 or 小公司核心

Venjer:滴滴 或者 得物,老铁们怎么选呢。想去上海,但是滴滴在北京。得物那边多多少钱可以考虑呢?得物:做的方向挺符合个人发展,大小周加班估计会很累。回家方便。滴滴:估计以后写在简历上不够看,就是蹭个二线大厂。独自一人在北京因为老家江浙的,在上海隔壁城市买了套房,以后家里有事回家啥的都很方便(爸妈年纪大了,新房装修啊之类的事,在北京回去估计就很麻烦了)。…

PostgreSQL DROP TABLE不起作用 - python

我正在尝试使用"DROP TABLE"命令删除一些表,但是由于未知的原因,该程序只是“坐下”并且不会删除数据库中想要的表。我在数据库中有3个表:产品,账单和账单_产品,用于引用账单中的产品。我设法删除/删除产品,但是对bill和Bill_Products却不能这样做。我正在发出相同的"DROP TABLE Bill CASCAD…

在Sublime Text 3插件中获取当前行 - python

我正在为Sublime Text 3写一个简单的插件,需要获取当前所选行的内容。我可以用selection = sublime.Region(self.view.sel()[0].begin(), self.view.sel()[0].end()) 获取当前突出显示的部分,但是有没有一种方法可以选择或返回整个当前行的内容,而无需手动选择全部?this pag…

Sublime Text-断点时的Python环境 - python

有没有一种方法可以在Sublime Text中配置该功能(例如,存在于PyCharm上),使您可以在代码中具有当前变量上下文的断点时使用python解释器控制台? (我知道您可以获得PDB控制台,但是我指的是功能完善的python控制台解释器)最好。 参考方案 它有一些debuggers,但是看起来很老旧而且很笨拙。当前只有与PyCharm进行免费,全面的比…

Zend_Search_Lucene查询解析问题 - php

这是设置,我有一个Lucene索引,它可以很好地处理我已索引的2,000个文档。我一直在使用Luke(Lucene Index Toolbox,v.0.9.2)调试查询,并且正在使用ZF 1.9。我的Lucene索引的布局如下:I = Indexed T = Tokenized S = Stored Fields: author - ITS category…