首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >避免postgresql日志中的“文本搜索查询只包含停用词或不包含词位,忽略”

避免postgresql日志中的“文本搜索查询只包含停用词或不包含词位,忽略”
EN

Stack Overflow用户
提问于 2012-02-07 13:01:21
回答 3查看 3.2K关注 0票数 2

我正在使用texticle (https://github.com/tenderlove/texticle)库来执行全文postgresql搜索。

库生成的sql如下所示:

to_tsvector('spanish', "games"."system"::text) @@ plainto_tsquery('spanish', 'Genesis'::text)

如果有人搜索“&”,那么我的日志中会出现一个警告:

text-search query contains only stop words or doesn't contain lexemes, ignored

我怎样才能避免这种情况?如果搜索词只包含停用词,我是否应该让应用程序知道各种停用词,而不向postgresql发送查询?或者我可以告诉postgresql忽略这个警告吗?

EN

回答 3

Stack Overflow用户

发布于 2014-02-22 01:22:20

如果查询只包含停止字,则此函数可用于解析:

numnode(plainto_tsquery(‘西班牙语’,'&')) =0)

票数 1
EN

Stack Overflow用户

发布于 2013-05-01 23:31:05

警告完全是描述性的。基本上,你必须在编程逻辑的某个地方处理这个问题。如果您的搜索是在存储过程中进行的,那么您可以测试值并查看它是否包含词位。

否则,您可以将日志记录级别设置为ERROR,这样就不会设置警告,或者可以在应用程序级别上处理它。

这些都不是完美的。如果我搜索" the“,我应该会得到类似的警告,所以你可能希望在它被转换为tsquery之后能够进行检查(即在数据库本身中。

否则,我的建议是忽略警告。

票数 0
EN

Stack Overflow用户

发布于 2012-02-16 03:54:55

就我个人而言,我总是对用户输入进行清理。它在很大程度上应该被认为是邪恶的。因此,在这种情况下,我肯定会在应用程序级别进行一些过滤。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9171237

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档