小编Bor*_*rys的帖子

如何使用ElasticSearch实现社交搜索?

我正在尝试使用ElasticSearch创建具有社交功能的商业搜索.我有一个业务目录,用户可以通过不同的方式与这些业务进行交互:查看它们,检查它们等.

当用户搜索商家时,我希望能够向他们展示他们的朋友在搜索结果顶部进行互动的商家(或根据这些互动进行过滤). 设置索引以实现此目的的最佳方法是什么?

我认为有一些可能的解决方案,但我是ES的初学者,我不确定会导致什么问题:

  1. 我可以使用多租户并为每个用户创建一个单独的索引.我已经排除了这一点,因为用户数远远大于企业数量或用户特定内容的数量.

  2. 我可以为每个索引的业务添加用户/分数对列表.每个与业务进行过互动的用户都会在那里,分数将代表他们与业务进行的互动量(这对我的过滤/排序来说已经足够了).每次他们与业务交互时,我都会更新索引中的分数.这个问题是我只关心朋友的活动,所以我需要找出一些方法来考虑我的朋友在为业务创建综合评分时是谁.我不知道如何在ES中这样做.

  3. 我可以创建一个类似的方案,但不是保持我与业务的交互得分,分数将反映我的朋友与业务的交互.这消除了在ElasticSearch中对社交图进行建模的需要,但它确实意味着每当一个人与一个企业进行交互时,我都需要更新他们所有朋友的分数.这也意味着每个企业的用户/分数对列表会更大,因为它需要包含任何有朋友与业务交互的人.

  4. 我能想到的最终解决方案是跟踪业务中发生的每个单独的交互,并将其添加到ES中的业务文档中.这对我来说似乎不太现实 - 它结合了其他解决方案的问题.但就保持指数最新而言,这可能是最简单的方法.

谢谢你的帮助!

elasticsearch

20
推荐指数
3
解决办法
7726
查看次数

为每个phantomjs实例指定不同的缓存目录

我正在使用PhantomJS 1.8并遇到了限制 - 您无法指定它用于磁盘缓存的目录.我将它添加到他们的问题跟踪系统中,但由于它之前没有,我不希望它很快被添加.

所以,我正在寻找一些解决这个限制的方法.我要做的是运行多个Phantomjs进程,每个进程都有自己独立的缓存目录.有什么方法可以做到这一点,直到功能被添加到幻像?

幻影甚至如何确定首先用于缓存的目录?如果它基于环境变量,也许可以通过某种方式为我运行的每个PhantomJS实例为该变量设置不同的值.

phantomjs

6
推荐指数
1
解决办法
2158
查看次数

标签 统计

elasticsearch ×1

phantomjs ×1