需要编码灵感 - 字符串中包含的关键字

时间:2010-03-03 13:58:21

标签: php tags hashtable keyword

我有一个特殊的问题,需要知道解决问题的最佳方法。

我有一个php字符串,可以包含许多关键字(实际上是标签)。例如: -

“seo,adwords,google”

“网站开发,社区建设,网页设计”

我想创建一个相关的关键字池,以便所有与seo,在线营销相关的关键字或所有与Web开发相关的关键字。

我想针对这些关键字池检查关键字/标记字符串,例如,如果关键字字符串中包含seo或adwords,则将其与关键字池匹配以进行在线营销,并提供特定内容。< / p>

我希望知道编码的最佳方法。我猜测某种哈希表或数组,但不确定接近它的最佳方法。

有什么想法吗?

由于

乔纳森

1 个答案:

答案 0 :(得分:1)

我想到了三种方法,虽然我确信会有更多。当然,在任何情况下,我都会将值存储在数据库表(或配置文件中,或根据您的应用程序)中,以便可以轻松编辑。

1)最简单:将列表转换为“keyword1 | keyword2 | keyword3”形式的正则表达式,并查看输入是否匹配。

2)中:将单词添加到哈希表中,然后将输入拆分为单词(您可能必须使用正则表达式替换以删除标点符号)并尝试在哈希表中查找输入的每个单词。

3)最难:根据您的具体情况,这可能不起作用,但如果所有可能的内容都可以通过搜索解决方案(例如Apache SOLR)编制索引,那么您的关键字列表可以用作搜索字符串并且您可以返回高于特定相关级别的结果。

如果不了解有关源数据的更多信息,很难确切知道哪种解决方案最有效。大量的关键字可能会占用正则表达式,但如果它是一个简短的列表,那么它可能会很好用。如果您的输入很长,那么#2将无法正常工作,因为您必须测试每个输入字。一如既往,您的里程可能会有所不同,所以我会从我认为可行的最简单的解决方案开始,看看性能是否可以接受。