elasticsearch,elastica,Php,Symfony,elasticsearch,Elastica" /> elasticsearch,elastica,Php,Symfony,elasticsearch,Elastica" />

Php 索引前检查Elasticsearch文档相似性

Php 索引前检查Elasticsearch文档相似性,php,symfony,elasticsearch,elastica,Php,Symfony,elasticsearch,Elastica,好吧,在一整天努力想弄明白这一点之后,我决定从社区中获取一些信息 应该提到的是,我对Elasticsearch还相当陌生 我的想法是,我有一个ES索引,其中包含一些文档,只有当没有具有类似字段内容(但不一定等于)的现有文档已经被索引时,我才需要索引新文档 我可以在多个字段上执行匹配查询并获得查询的全局分数,但由于该分数不是可用最大分数的百分比,我不确定如何设置阈值以确定是否可以插入文档 我显然对ES评分系统有点困惑。 提前谢谢你对我的帮助 编辑: 作为一个基本的例子 这已被编入索引: { "

好吧,在一整天努力想弄明白这一点之后,我决定从社区中获取一些信息

应该提到的是,我对Elasticsearch还相当陌生

我的想法是,我有一个ES索引,其中包含一些文档,只有当没有具有类似字段内容(但不一定等于)的现有文档已经被索引时,我才需要索引新文档

我可以在多个字段上执行匹配查询并获得查询的全局分数,但由于该分数不是可用最大分数的百分比,我不确定如何设置阈值以确定是否可以插入文档

我显然对ES评分系统有点困惑。 提前谢谢你对我的帮助

编辑:

作为一个基本的例子

这已被编入索引:

{
  "title": "My first blog entry",
  "text":  "Just trying this out...",
  "date":  "2014/01/01"
}
这是新的,但不应编制索引,因为字段不相等但太相似:

{
  "title": "My first blog entries",
  "text":  "Just trying it out...",
  "date":  "2014/01/01"
}
这是新的,应编制索引:

{
  "title": "My second entry for this blog",
  "text":  "I am just trying out a few things",
  "date":  "2014/01/01"
}

因此,它基本上是在索引之前进行重复数据消除,并基于我所关注的字段相似性:)

一个完美的解决方案就是查询

在这种查询中,您可以在
like
字段中提供人工文档,这些文档将与索引中的文档进行相似性匹配。默认情况下,它们将使用所有可用字段,但您也可以选择有限数量的字段进行比较

大多数情况下,此查询用于检索与用户可能正在查看或选择的一个或几个文档类似的文档。尽管如此,您还是可以使用此功能分析返回文档(如果有)的分数,并决定是否为文档编制索引


请参阅上面链接的文档页面,以获取全面的参数列表。

最好提供一些示例文档以及您希望它们如何匹配(或不匹配)。没有更多的信息,很难想象你在追求什么。帮助我们帮助你;-)嗨,我已经用例子更新了这个问题:)谢谢,我将调查更多类似的问题,看看情况如何!