我有一个特殊的问题,需要知道解决它的最佳方法。
我有一个php字符串,可以包含许多关键字(实际上是标签)。例如:
"seo、adwords、google“
或
网站开发、社区建设、网站设计
我想创建一个相关的关键字池,所以所有的搜索引擎优化,在线营销相关的关键字或所有网络开发相关的关键字。
我想检查这些关键字池中的关键字/标签字符串,例如,如果seo或adwords包含在关键字字符串中,它将与在线营销的关键字池匹配,并提供特定的内容。
我希望知道对此进行编码的最佳方法。我猜是某种哈希表或数组,但不确定最好的方法。
有什么想法吗?
谢谢
乔纳森
发布于 2010-03-03 22:06:56
我想到了三种方法,尽管我相信还有更多的方法。当然,在任何情况下,我都会将这些值存储在一个数据库表(或配置文件,或任何取决于您的应用程序的文件)中,以便可以轻松地对其进行编辑。
1)最简单:将列表转换为"keyword1|keyword2|keyword3“形式的正则表达式,并查看输入是否匹配。
2)中:将单词添加到哈希表中,然后将输入拆分成单词(您可能必须使用正则表达式替换以删除标点符号),并尝试在哈希表中找到输入的每个单词。
3)最难:根据您的实际情况,这可能不起作用,但如果所有可能的内容都可以通过搜索解决方案(例如Apache SOLR )进行索引,那么您的关键字列表可以用作搜索字符串,并且您可以返回特定相关性级别以上的结果。
如果不知道更多关于源数据的信息,就很难确切知道哪种解决方案效果最好。大量的关键字可能会阻塞正则表达式,但如果它是一个简短的列表,那么它可能会很好地工作。如果你的输入很长,那么#2就不能很好地工作,因为你必须测试每个输入的单词。像往常一样,您的里程数可能会有所不同,所以我将从我认为有效的最简单的解决方案开始,看看性能是否可以接受。
https://stackoverflow.com/questions/2371826
复制相似问题