Elasticsearch 通过另一个文档查找文档

2024-04-08

我想在elasticsearch中搜索与id docId给定文档具有完全相同字段的文档。例如用户使用 docId 调用 api,我想过滤文档,以便返回的所有文档都满足 docId 中的某些参数。

例如,我可以像这样查询 Elasticsearch:

POST similarTerms/_search
{
    "fields": [
       "_id", "title"
    ]   ,
    "filter": {
    "query": {"match": {
       "title": doc[docId].title
    }}
    }, 
    "size": 30

}

我知道我可以使用 docId 获取文档,然后我可以准备上述查询,但是我可以以某种方式避免网络跳跃,因为即使是几毫秒的时间改进也是我的应用程序非常关心的。

Thanks


这是“more like this”api 的教科书场景。引用自the docs http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-more-like-this.html:

more like this (mlt) API 允许获取“类似”的文档 指定文件。这是一个例子:

$ curl -XGET 'http://localhost:9200/twitter/tweet/1/_mlt?mlt_fields=tag,content&min_doc_freq=1'

该 API 只是使用 moreLikeThis 执行搜索请求 查询(http参数与more_like_this的参数匹配 询问)。这意味着请求正文可以选择包含 搜索 API 中的所有请求正文选项(aggs、from/to 等 在)。在内部,更像这个API相当于执行一个 more_like_this_field 查询的布尔查询,每个查询一个查询 指定的 mlt_fields。

如果您计划仅使用一个文档进行测试(就像我所做的那样),请确保您还设置了min_term_freq=0 and min_doc_freq=0: GET /my_index/locations/1/_mlt?min_term_freq=0&min_doc_freq=0

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Elasticsearch 通过另一个文档查找文档 的相关文章

随机推荐

  • pandas 填补前向性能问题

    我有一个具有多索引 日期 输入时间 的数据框 该数据框可能在列 值 Id 中包含一些 NA 值 我想填充远期值 但仅按日期填充 但我找不到以非常有效的方式执行此操作的方法 这是我的数据框类型 这是我想要的结果 因此 为了按日期正确填充 我可
  • Flask-Security CSRF 令牌

    我有一个 Flask 应用程序作为 REST API 后端 我想为后端实现基于令牌的身份验证 但为了做到这一点 我需要检索用户令牌 Flask Security 文档明确指出 要检索令牌 需要执行 HTTP POST 并将身份验证详细信息作
  • 如何使用自定义编辑器在移动另一条贝塞尔曲线时更新一条贝塞尔曲线

    我正在使用下面的代码创建贝塞尔曲线 我从here http catlikecoding com unity tutorials curves and splines 我也做了一个BezierPair具有两条贝塞尔曲线作为子对象的游戏对象 从
  • 将参数传递给在 AWS Fargate 上的 Docker 容器中运行的 Python

    将参数传递给运行 Python 脚本的 Docker 容器可以像这样完成 docker run my script 0 1 arg1 val arg2 val 我似乎无法弄清楚在 AWS Fargate 上运行容器时如何传递这些参数 也许它
  • 如何将变量从 jquery 传递到代码隐藏(C#)?

    这是我的代码 但它不起作用 后面的代码获取空字符串
  • 具有关联数组的唯一数组 - 删除重复项

    我有一个包含一些重复项目的关联数组 例如 我有
  • 什么是 keyExtractor 参数

    我正在学习Comparator界面 我对它的静态感到困惑Comparator comparing 方法 关于Comparator comparing 方法的参数以及它如何使用方法引用 当我查看文档时 它说它有一个 keyExtractor
  • 如何开发才能利用64位系统?

    软件工程师 计算机科学的某些特定领域在针对 64 位系统进行开发时是否存在显着差异 我已经编码了大约 10 年 自从 64 位系统崩溃以来 我的代码没有改变过一丁点 哪些应用程序可以由单个编码员作为业余项目进行编码 并且需要您使用 64 位
  • Reactive Cocoa 限制信号一次只能发送给一名订阅者

    我需要在 RAC 中进行建模 我有一个 tabBarController 它将订阅通知信号 说推送通知 也说当前活动的视图控制器也可能想要订阅相同的信号 但是如果任何视图控制器订阅了它 tabBarController 就不想处理它 否则它
  • Spring表单:选择多个选定值?

    我有这个编辑表格 我希望选择用户的角色 如果这是一对多关系 我知道我可以这样做
  • 如何使 Redirect.INHERIT 和 System.setOut 一起工作

    这可能是一个微不足道的问题 但我无法轻易找到答案 我有一个简单的 Java 程序 System setOut new PrintStream new File stdout txt ProcessBuilder pb new Process
  • 如何使引导轮播上的文本保持不变,而图像移动?

    基本上 我让轮播正常工作 但我只希望图像能够过渡 但每张幻灯片上的文本都相同 理想情况下 文本不会移动 但图像会在背景中移动 这是一个例子 http www bootply com pINPxqzlJ2 http www bootply c
  • ProcessBuilder的正确使用

    经过研究 我注意到使用 java 的 ProcessBuilder 的 正确 方法是生成另外两个线程来管理新创建进程的 stdout stderr 的吞噬 这样它就不会挂起 如下所示 java世界文章 http www javaworld
  • django.db.utils.ProgrammingError:类型“raster”不存在

    我的模型 我在这里创建了 3 个模型 当我迁移时 我收到错误 from django contrib gis db import models from django contrib gis db models fields import
  • Maven 无法使用 OpenJDK 11 找到 jaxb-api,即使它存在于存储库中

    我有一台装有 Windows 操作系统的机器 它用于构建一些 WAR 项目 它有已安装 Java 8在上面 我在用Maven 3 2 5构建这些 WAR 项目 一切正常 但由于 Java 8 由于免费更新的结束而在未来会成为一个问题 所以我
  • 将轮分解添加到不定筛

    我正在修改埃拉托色尼的不定筛here https stackoverflow com a 10733621因此 它使用轮分解来跳过比当前仅检查所有赔率的形式更多的组合 我已经弄清楚了如何生成到达轮子上所有间隙所需的步骤 从那里我想我可以用
  • Azure DevOps 扩展中的节点密码警告 - 发布任务

    我正在开展一个开发 Azure DevOps 发布任务扩展的项目 最近 当发布任务运行时 我在日志中多次打印此警告消息 警告 使用 Cipheriv 作为 aes 256 ctr 的计数器模式 我没有更早得到它 当我开始收到此错误时 我只更
  • C 到 MIPS - 函数和数组

    我正在尝试将以下 C 代码转换为 MIPS 程序集 数组的基地址存储在 a0中 变量索引存储在 a1中 变量 x 存储在 t0 中 void ld array char array int index x array index 当索引是一
  • 如何通过 Grails 使用 imgscalr

    我最近几天才开始使用 Groovy 和 Grails 我之前没有任何 Java 经验 所以您必须原谅这个 可能 非常基本的问题 我搜索了 Google 和 Stack Overflow 但没有找到任何可以帮助我实际安装的内容 我已经可以上传
  • Elasticsearch 通过另一个文档查找文档

    我想在elasticsearch中搜索与id docId给定文档具有完全相同字段的文档 例如用户使用 docId 调用 api 我想过滤文档 以便返回的所有文档都满足 docId 中的某些参数 例如 我可以像这样查询 Elasticsear