我正在将一个项目从solr转换为cloudsearch,在对文档和web进行长时间搜索之后,我无法找到解决办法。我希望别人能帮上忙。
我无法描述真正的细节,但我能找到的最接近我的问题的例子是一个剽窃的发现。想象一下,将一堆已发布的文档加载到cloudsearch中,然后以一个业余文档作为查询,查看是否有匹配的文档。
给出一个索引文档--比如维基百科的暴龙页面:
像其他霸王龙一样,暴龙是一种双足食肉动物,有着巨大的头盖骨,尾巴又长又重。
接下来是业余文献:
我是食肉动物,我喜欢暴龙,因为他也是双足食肉动物。
出于对项目很重要的原因,我正在创建一个有趣单词的发行版,而不是对全文进行查询,例如:
carnivore: 2
tyrannosaurus: 1我更倾向于在维基百科的文章中找到“食肉动物”这个词,而不是“暴龙”。
在solr中,我使用"^“运算符(例如"carnivore^2”)来增强查询。
据我所知,cloudsearch作为“排名表达式”确实可以增强,但我没有发现任何类似于我的问题的地方。
有什么想法吗?
发布于 2013-06-12 02:49:20
看看Zipf的定律(也有类似的叫做Zipf-Mandelbrot的法律,但很难实现),基本上它认为对于任何语言(在每个特定的领域),单词频率的分布服从Zipfs分布。您可以构建一个词频列表,对其进行排序以适应zipf分布,从中您可以调整分布的参数并推断出相关性一词。
基于你的问题,我知道你正在实施某种td-以色列国防军,这是更先进的。不幸的是,我认为你的问题更多的是一个计算机科学/语言问题,它需要更多的解释,比我在这篇文章所能写的更多。
我不使用cloudsearch (我也在自然语言处理项目中工作,但我不使用cloudsearch),但是检查一下我发现了这个http://docs.aws.amazon.com/cloudsearch/latest/developerguide/rankexpressions.html
您可以使用这些操作数构建zipf发行版(或它的任何定制/风味),并为您的排名定义一个阈值。
这不是一个“干净的代码”的答案,但我希望它能帮助你。
https://stackoverflow.com/questions/16755532
复制相似问题