当前位置: 首页 > 面试题库 >

我可以在elasticsearch查询中指定结果字段吗?

尉迟冯浩
2023-03-14
问题内容

在我的数据集中,一个文档包含20多个带有嵌套对象的字段。它们大多数是长文本字段。这些字段对于全文搜索很重要,但是我们只需要在输出中显示标题,简短描述和ID。

是否可以在ElasticSearch中为全文查询指定输出字段?(如MongoDB中的投影)


问题答案:

我认为您正在寻找fields搜索请求的属性:

允许有选择地为搜索命中表示的每个文档加载特定字段。默认情况下加载内部_source 字段。

{
    "fields" : ["user", "postDate"],
    "query" : {
        "term" : { "user" : "kimchy" }
    }
}

这些字段将自动加载已存储的字段(将存储映射设置为yes),或者,如果未存储,将加载_source并从中提取(允许返回嵌套的文档对象)。



 类似资料:
  • 通常情况,我们不需要获取数据表的所有字段内容,而是部分字段。那么使用语句如下: $Model->field('id,title')->select();

  • 问题内容: 有没有一种方法可以重用mysql语句中的计算字段。我收到以下错误信息:“ unknown column total_sale”: 还是我必须重复计算,如果我添加了所有需要的计算,这将导致很长的SQL语句。 当然,我可以在我的php程序中进行所有计算。 问题答案: 是的,您可以重用变量。这是您的操作方式: 在此处了解更多信息:http : //dev.mysql.com/doc/refm

  • 是否可以使用多个字段来设置和查询多语言字段? 考虑这个映射: 我尝试了以下方法,但无效: 该错误似乎表明我正在尝试添加新字段: {"错误":{"root_cause": [ { "类型":"mapper_parsing_exception","原因":"无法动态添加字段[book_title.english]的映射。[book_title]的现有映射必须是类型对象,但找到[text]." } ],

  • 我配置了一个带有两个字段的Elasticsearch索引:“name”和“type”。当我执行下面的查询时,没有得到任何结果,因为“actor”在“type”字段中。 有没有任何方法可以执行一个包含多个单词的查询,并且即使一些单词在“name”字段中而其他单词在“type”字段中也可以得到结果。 谢谢你的帮助!

  • 问题内容: 有没有办法从mySQL的子查询中指定父查询字段? 例如: 我已经用PHP编写了一个基本的公告板类型程序。 在数据库中,每个帖子都包含:id(PK)和parent_id(父帖子的ID)。如果帖子本身是父项,则其parent_id设置为0。 我正在尝试编写一个mySQL查询,该查询将查找每个父级帖子以及父级拥有的子级数。 棘手的是,第一个 ID 不知道它应该引用子查询之外的第二个 ID 。

  • 问题内容: 具有以下映射: 我在上面放了两个项目: 现在,我想在每个字段上搜索,但是,所以我要做的是: 它应该只显示该项目,因为第二个项目带有单词,但是它在上,这就是我要忽略的内容。如何存档? PS:这只是一个简单的示例,我有一个包含很多属性的映射,我想在某些搜索中忽略其中的一些属性。 PS2:我正在使用ES 2.3.2 问题答案: 该设置仅在不返回响应中的字段时才有用,但这并不排除搜索该字段。