【问题标题】:search in a document and just get the properties that match my search in elasticsearch在文档中搜索并获取与我在 elasticsearch 中的搜索匹配的属性
【发布时间】:2017-05-21 04:56:57
【问题描述】:

在我的 elasticsearch 索引中,我有一个具有多个属性的类型。 每个都有不同的值..

现在我的问题是:

在我的搜索查询中,我只想获得与我的匹配的结果..而不是漏洞文档!我想要弹性让我得到匹配的结果!并非所有结果匹配和不匹配的文档,因为匹配而返回给我

感谢帮助的朋友..


这里有一个关于我的问题的例子: 例如在我的文档中我有一个名为文件夹的属性,它有一些属性,可以有多个值..

"folder":  [
       [
      "employer_folder_id" => 142
      "status_id" => 140
      "folder" =>  [
        "id" => 142
        "employer_id" => 11
      ]
      "created_at" => "2017-04-12"
      "is_applied" => 1
      "hire_stage_id" => 144
    ]
     [
      "employer_folder_id" => 7922
      "status_id" => 141
      "folder" =>  [
        "id" => 7922
        "employer_id" => 11
      ]
      "created_at" => "2017-04-12"
      "is_applied" => 1
      "hire_stage_id" => 144
    ]
]

这里我想搜索 status_id = 141 的文件夹,

但是当我搜索它时,它会为我返回孔文档.. 带有其他状态 ID...但我只想返回 status_id=141,以及其他字段

文件夹在我的类型中是一个属性..

【问题讨论】:

  • 你的问题让我很困惑。你能提供和例子吗?
  • 确定@MohammadMazraeh 例如在我的文档中我有一个名为文件夹的属性,它有一些属性,可以有多个值..''

标签: search elasticsearch match document


【解决方案1】:

很高兴提供您的映射和查询。
我认为那是因为您的数组类型是 object 类型。在这种情况下,当每个字段都是值数组时,弹性会将您的 folder 属性展平为文档。像这样:
在索引时完成

folder.status_id: [140, 144, 141, 144]  

这就是您的查询将返回漏洞文档的原因。
您应该尝试使用nested 对象类型。
Useful Link

【讨论】:

  • 感谢@MohammadMazraeh 我正在使用 laravel scout 驱动程序.. 并且找不到如何进行映射的方法.. 这也是我的问题..
  • 我对 laravel 不熟悉。你不能用index templates吗?
【解决方案2】:

您可以使用 fields 查询以仅将那些字段作为结果作为您需要的结果,例如;

{
    'query': {
        'bool': {
            'must': [
                {
                    'term': {
                        'Key1': 'value1'
                    }
                }
            ]
        }
    },
    'fields': [
        'Key1',
        'Key2',
        'Key3'
    ]
}

这将返回所有存在 key1 且值为 value1 的文档。每个文档将只有 3 个字段,'Key1','Key2','Key3'

【讨论】:

  • 感谢您的回复朋友.. 但我的文档中有多个字段 'Key1','Key2','Key3'.. 在我的文档中可能只有一个字段' Key1' 具有匹配值,而其他 'Key1' 字段不匹配......并且它可能发生在其他 'Key2' 和 'Key3' 字段.. 在这种情况下,我怎样才能显示正确的字段?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-01
  • 2023-01-30
  • 2017-10-21
  • 1970-01-01
相关资源
最近更新 更多