小编Col*_*ean的帖子

在Elastic Search中按匹配文本对match_phrase搜索结果进行分组

给定一个短语匹配查询,如下所示:

{
    'match_phrase': {
        'text.english': {
            'query': "The fox jumped over the wall",
            'phrase_slop': 4,
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

有没有办法可以通过完全匹配对结果进行分组?

因此,如果我有1个text.english包含"快速狐狸跳过小墙"的文件和3个包含"懒狐狸跳过大墙"的文件,我最终得到了这两组结果.

我可以运行多个查询并在ES之外进行一些处理,但我需要一个能够在大量文档上合理执行的解决方案.理想情况下,我希望有一种方法可以使用我错过的聚合来做到这一点.

我提出的最佳解决方案是使用突出显示运行上面的查询,解析所有结果中的所有突出显示,并根据突出显示内容对它们进行分组.这适用于非常小的结果集,但是在1000多个文档结果集中,它非常慢.

编辑: 也许我可以让这一点更清楚.如果我有包含以下值的示例文档:

  1. "快速的狐狸跳过小墙.Blah blah blah许多页无关的文字."
  2. "这只懒惰的狐狸跳过了大墙.布拉赫等待了许多不相关的文字."
  3. "这只懒惰的狐狸跳过了大墙.布拉赫等待了许多不相关的文字."
  4. "这只懒惰的狐狸跳过了大墙.布拉赫等待了许多不相关的文字."

我想能够将我的结果分组如下,查询文字"狐狸跳过墙壁":

  • "快速狐狸跳过小墙" - 文件1
  • "懒惰的狐狸跳过大墙" - 文件2,3,4

elasticsearch

9
推荐指数
1
解决办法
980
查看次数

如何在Tornado中使用最小阻塞来密码密码?

我正在使用PBKDF2,但这同样适用于BCrypt.

以合理的迭代次数散列密码可以轻松阻止0.5秒.什么是轻量级的方法来解决这个问题?我不愿意为此操作设置像Celery或Gearman这样的东西.

python asynchronous tornado bcrypt pbkdf2

3
推荐指数
1
解决办法
1148
查看次数

标签 统计

asynchronous ×1

bcrypt ×1

elasticsearch ×1

pbkdf2 ×1

python ×1

tornado ×1