【发布时间】:2015-05-03 18:47:50
【问题描述】:
我一直在尝试实现搜索查询,其中一部分是搜索字符串。我想要完成的是从 "lorem ipsum dolor es" 的示例字符串中搜索任何单词。 em>lorem OR lorem ipsum OR dolor OR *lorem ipsum dolor em> es* 如果适用。
到目前为止我尝试了什么:
类似于 '%lorem ipsum dolor es%' - 这显然返回 0,因为没有找到整个字符串
LIKE LOWER '%lorem ipsum dolor es%' - 同上
to_tsvector(files.desc) @@ 'lorem ipsum dolor es' - 结果也为空
我是否必须将用户输入转换为单词数组才能完成我的任务?
编辑:
我最初的想法是能够在我的表中找到字符串的任何部分,这通过使用以下查询来解决。然而,我遇到了另一个障碍。如果我想通过使用一个查询并严格搜索来搜索两个表怎么办。如果用户键入“lorem ipsum keyword4”,我希望它找到任何具有包含 lorem ipsum 的任何单词的描述并且具有属于它的关键字 4 的图像。但我也希望它能够找到图像,如果一个类型“keyword4”或类型“lorem ipsum”。下面的小提琴显示了在一种类型“lorem ipsum keyword4”的情况下它是如何工作的。我该怎么做?
【问题讨论】:
-
你的问题没有意义。如果字符串包含
lorem ipsum dolor es,则其余条件只是噪音。请澄清。 -
就像在字符串中搜索任何单词一样简单。如果用户输入“lorem ipsum dolor es”,我希望能够检查它的任何单词是否存在于我的表中,不一定是整个字符串,@Nuri Tasdermir 回答正确
-
所以你的问题应该说
OR现在它说AND,这仍然不清楚,因为你列出任意组合。但是,接受的答案仅找到 所有 个单词包含在同一字符串中的匹配项,而不仅仅是 any 的这些话 - 既不符合您的问题也不您的评论。请用 exact 定义澄清您的问题。还要说明搜索是否应区分大小写。
标签: postgresql search sql-like