我在elasticsearch
数据库中存储了两个文档
一个是
{
q :["python" , "foo"]
}
而另一个是
{
q :["python" , "moo","foo"]
}
现在我的问题是在
search
文档上,其中python
在索引0
上,而foo
在索引1
上,如何实现呢?我已经阅读过有关
bool
的elasticsearch
查询的信息,但无法弄清楚如何使用它! 最佳答案
您可以使用scripting做到这一点,试试看
{
"query": {
"filtered": {
"filter": {
"bool": {
"must": [
{
"script": {
"script": "_source.q[0] == \"python\" && _source.q[1] == \"foo\" "
}
}
]
}
}
}
}
}
尽管建议使用
document fields
,因为它们已加载到内存中并且可以快速访问,但是它们是而不是。请引用this,因此在这种情况下,我们需要使用_source
关于elasticsearch - 在ElasticSearch中按索引搜索数组值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34645205/