我有一本关于书籍的数据集,每个书籍都可以使用一种或多种语言。每个用户都注册为拥有一种或多种语言。Elasticsearch子集筛选器
当用户搜索书籍时,我只想返回那些他们了解其所有语言的书籍。
例如,下面的两本书是系统:
Book A: English, French, German
Book B: English, Greek
如果约翰被注册为不懂英语,德语,法语和意大利语,那么他的查询结果中不应包括书B.
我的系统目前使用Apache Solr编写,其中我最终编写了一个插件来执行子集操作(如果记录的语言是用户语言的子集,其中用户的语言被声明为查询)。
但是,我想转换到Elasticsearch后端。然而,这种特定的子集行为似乎并不是核心过滤器包的一部分。我错过了什么,或者我应该看看写一个类似的插件/自定义过滤器?
您是否发现ElasticSearch(或任何其他数据库/搜索系统)覆盖此方法? – Tor
不 - 我最终得到了一个替代实现,在这里我查询(elasticsearch)书籍,然后在它们上面快速查找一下java,以确定用户是否可以理解所有语言。如果某些语言不被理解,结果集将被标记,并将其传递给用户。不过,我很乐意听到有一种实现原始设计的方法! –
以下是我自己的笔记:https://docs.google.com/document/d/1ngZU89rWc3fQMU8CSSW_yFCyeWEmJzJRngmEl88IrvE。如果你或其他人发现了一个现成的解决方案(这可能可以处理大集),那么让我知道。如果我找到一些东西,我一定会回到这里来:) – Tor