我还没有使用ElasticSearch的经验,但从我读到的内容来看,我认为它最适合我的需求。我有一个网络刮板,它刮擦某些域的页面。 我想将这些页面提供给SE并提供前端界面来搜索已删除的内容。我正在构建某种垂直搜索引擎。
但众所周知,一个主机的网页通常只包含一些独特的内容,很多页面都很常见。页脚,页眉,菜单等在每页都是相同的。
ElasticSearch是否有一些智能构建可以过滤掉常见部分并只搜索真实内容?
答案 0 :(得分:0)
将网页内容泵入Elastic并不是非常困难,所以我假设你已经把它丢了。 =)
我认为这篇文章非常适合理解如何索引/搜索网页:
http://blog.urx.com/urx-blog/2014/9/4/the-science-of-crawl-part-1-deduplication-of-web-content
这是一个复杂的问题,他们有一些非常详细的信息。我所知道的Elastic中没有任何东西可以帮助你消除重复等等。
答案 1 :(得分:0)
您需要采用的策略是为每个文档创建一个唯一键。使用sha1或类似算法进行校验和将完成获取唯一键的工作。将其设为文档ID,以便在任何时间点只出现一个页面。如果您不希望索引新的重复项(更高效),请再次使用_create API进行索引,如果您希望新文档使用正常索引,则使用正常索引。
如果您需要在发送重复文档的情况下修改原始文档,请使用upser。
我已经在blog中解释了很多这方面的内容。