【发布时间】:2018-08-16 18:34:38
【问题描述】:
如果我有一张桌子,里面有很多人。每个人都会有自己的属性,例如姓名、社会 id、年龄、性别、孩子的数量……
给定一个 40 岁的男性,有 2 个孩子.. 提供所有与 A 相似的人。
这是我可以通过 Elastic 搜索实现的吗?我正在考虑更多类似这个查询https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-mlt-query.html
非常感谢。
【问题讨论】:
-
在这种情况下,“相似”是什么意思?也许更喜欢这个查询不适合您,因为它对文本进行操作
-
所以如果我把所有东西都放在一个文本字符串中,例如“B 人,49 岁男性,夏日出生,有 2 个孩子,1 男 1 女”,“B 人,49 岁女性,冬日出生,有 1 个孩子,1 男 1 女0个女孩”。 elasticSearch 的 Maybe More Like 是否能够处理这样的事情?谢谢你:)
-
是和不是。 MLT 将查找具有“相似”文本字符串的文档。但是“相似”的意思(或多或少)是“具有最多的共同点”。您将自己进行过滤,以确保您自己对数字相似性的定义(例如年龄、社交 ID 和孩子的数量)得到支持。否则,您最相似的人可能是“人 C,一位 79 岁的女性,在冬日出生,有 23 个孩子,1 个男孩和 22 个女孩”(因为它只有 4 个术语不同:[“C”,“79” , "23", "22"])
标签: elasticsearch