搜索查询分析器

时间:2011-10-30 16:13:12

标签: php parsing search

我的应用程序应该根据搜索查询搜索存储的图像。用户可以在labeldescriptionpeople tagged intime posted中进行搜索。为此,我尝试制作一个接受parser wild card (*) @TaggedPeopleName (DateFrom - DateTo)的搜索查询#Place以及所有其他文字以匹配标签和说明。我的问题是我重新发明轮子了吗?或者已经存在这样的解析器可能具有类似的功能?

示例查询是:

  • @JohnLenon 500 Miles

    将返回标签或说明中匹配500 Miles的图片,并且标记为John Lenon

  • (24 Dec - 30 Dec)

    将返回在该时间段内上传的所有图片。

  • #Kolkata (24 dec - 31 Dec) Occupy Together

    将返回与标签或说明中的字符串Occupy Together匹配且与时间范围24 dec to 31 Dec匹配并在地点Kolkata拍摄的所有图片

如果某些图书馆已经这样做,我可以接受不同的语法。因为我不仅仅坚持这种语法

1 个答案:

答案 0 :(得分:0)

据我所知,没有什么可以自动为你做这件事 - 这对你的情况来说太特别了。

我会把它分解成块以使其变得容易。

搜索以@开头的所有字词 - 删除它们 搜索以#开头的所有字词 - 删除它们 搜索()包围的所有术语 - 删除它们 剩下的是一般搜索词。

要考虑的事情:

  • 如果有人想在以@或#?
  • 开头的描述中搜索字词,该怎么办?
  • ()条款的格式是什么 - 大多数人不会像你一样自然地格式化日期?
  • 如果有人在()之间插入垃圾怎么办?
  • 如果两个单词被另一个标记分隔,但删除它们之后会被放在一起怎么办?
  • 或者如果这个人把两个单词放在一起但又不想把它们作为一个词来搜索怎么办?