在弹性搜索的子文档中搜索术语 [英] Searching term in subdocuments with elasticsearch

查看:101
本文介绍了在弹性搜索的子文档中搜索术语的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个下面的索引文档结构;

  {
term:some term
inlang:some lang
translations:{
{
translation:some translation,
outlang:some lang ,
翻译:{
{
翻译:一些翻译1
outlang:some lang 1
translations {...}
}
}
},
...
}
}
/ pre>

我想在这样的文档中找到一个翻译。但是,本翻译可能存在于本文档的任何级别。是否可以通过使用弹性搜索动态地搜索项?



例如,

  {
query :{
* .translation:searchterm
}
}

提前感谢

解决方案

我已经设法用以下查询:

  {
query:{
query_string:{
query:someterm,
fields:[* .translation]
}
}
}

  {
查询:{
multi_match:{
query:someterm,
fields:[* .translation]
}
}
}

您可以看到弹性搜索的Google群组对话 here


I have a index document structure like below;

{
   "term":"some term",
   "inlang":"some lang"
   "translations" : {
      {
          "translation":"some translation",
          "outlang":"some lang",
          "translations" : {
              {
                  "translation":"some translation 1"
                  "outlang": "some lang 1"
                  "translations" : {...}
              }
          }
      },
      ...
   } 
}

I want to find a translation in such documents. However, this translation can exists at any level of this document. Is it possible to search term dynamically by using elasticsearch?

For example,

{
   "query": {
      "*.translation":"searchterm"
   }
}

Thanks in advance

解决方案

I have managed to do that with following query;

{
  "query": {
    "query_string": {
      "query": "someterm",
      "fields": ["*.translation"]
    }
  }
}

or

{
  "query": {
    "multi_match": {
      "query": "someterm",
      "fields": ["*.translation"]
    }
  }
}

You can see elasticsearch google group conversation here

这篇关于在弹性搜索的子文档中搜索术语的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆