在文档中搜索,只需在elasticsearch中获取与我的搜索匹配的属性
在我的elasticsearch索引中,我有一个具有多个属性的类型。 每一个都有不同的价值 现在我的问题是: 在我的搜索查询中,我只想得到与我匹配的结果。。不是洞文件!我要得到匹配的结果!不是所有的文档都有匹配和不匹配的结果,因为匹配的结果而返回给我 谢谢你的帮助,朋友们在文档中搜索,只需在elasticsearch中获取与我的搜索匹配的属性,search,elasticsearch,match,document,Search,elasticsearch,Match,Document,在我的elasticsearch索引中,我有一个具有多个属性的类型。 每一个都有不同的价值 现在我的问题是: 在我的搜索查询中,我只想得到与我匹配的结果。。不是洞文件!我要得到匹配的结果!不是所有的文档都有匹配和不匹配的结果,因为匹配的结果而返回给我 谢谢你的帮助,朋友们 以下是关于我的问题的一个例子: 例如,在我的文档中,我有一个名为folder的属性,它有一些属性,可以有多个值 "folder": [ [ "employer_folder_id" => 1
以下是关于我的问题的一个例子: 例如,在我的文档中,我有一个名为folder的属性,它有一些属性,可以有多个值
"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
]
]
我想在这里搜索状态为_id=141的文件夹
但当我搜索时,它会为我返回hole文档。。使用其他状态ID。。。但我只想返回status_id=141,其他字段也是如此
文件夹在我的类型中是一个属性 您可以使用字段查询仅将您需要的字段作为结果,例如
{
'query': {
'bool': {
'must': [
{
'term': {
'Key1': 'value1'
}
}
]
}
},
'fields': [
'Key1',
'Key2',
'Key3'
]
}
这将返回所有存在key1且其值为value1的文档。每个文档只有3个字段,“Key1”、“Key2”、“Key3”。最好提供您的映射和查询。
我想那是因为你的数组类型是
object
类型。在这种情况下,当每个字段都是一个值数组时,elastic将把文件夹
属性作为文档展开。类似这样的内容:在索引时间完成
folder.status_id: [140, 144, 141, 144]
这就是查询将返回hole文档的原因。您应该尝试使用嵌套对象类型。
你的问题让我很困惑。您能提供和示例吗?当然@MohammadMazraeh例如,在我的文档中,我有一个名为folder的属性,它有一些属性,可以有多个值..“谢谢你的回复,朋友。。但我的文档中有多个字段“Key1”、“Key2”、“Key3”。。在我的文档中,可能只有一个字段“Key1”具有匹配值,而其他“Key1”字段不匹配。。。其他“Key2”和“Key3”字段也可能发生这种情况。。在这种情况下,我如何显示正确的字段?谢谢@Mohammadazraeh我使用的是laravel scout driver。。找不到一种方法来做地图。。这也是我的问题1.我对拉威尔不熟悉。你不能使用索引模板吗?