我有一个数据集,其中每个文档都有一个'Name'属性,可以在另一个属性'Text'中使用,例如
{
name: "Bob",
text: "Put a fish on Bob. This fish grants Bob the power of Fish-Slapping Dance."
},
{
name: "Cam"
text: "Put a hammer on Cam. This hammer grants Cam the power of Hammertime."
}
现在,我必须做一些类似'授予权力'的搜索,这肯定会把这些视为可能的匹配,但我希望能够做到'授予权力' ',其中〜被定义为该文档的特定属性,在本例中为'Name'。因此,当它搜索第一个文档时,它将搜索“授予Bob的权力”,第二个,“授予Cam的权力”。
我不需要该属性是动态的,因为在我的用例中它永远不会改变,但我没有找到任何允许我在搜索查询中使用文档属性值的东西。
答案 0 :(得分:0)
我建议在模型中添加更多字段。类似的东西:
{
name: "Cam"
text: "Put a hammer on Cam. This hammer grants Cam the power of Hammertime.",
who: "cam"
action: "grant",
thing: "power"
what: "hammertime"
}
然后您可以查询以下内容:
GET devdev/audittrail/_search
{
"query": {
"filtered": {
"filter": {
"and": {
"filters": [
{
"term": {
"who": "cam"
}
},
{
"term": {
"action": "grant"
}
},
{
"term": {
"thing": "power"
}
},
{
"term": {
"what": "hammertime"
}
}
]
}
}
}
}
}