使用elasticsearch在子文档中搜索术语
我有一个索引文档结构,如下所示使用elasticsearch在子文档中搜索术语,search,document,
elasticsearch,Search,Document,
elasticsearch,我有一个索引文档结构,如下所示 { "term":"some term", "inlang":"some lang" "translations" : { { "translation":"some translation", "outlang":"some lang", "translations" : { { "translation":"
{
"term":"some term",
"inlang":"some lang"
"translations" : {
{
"translation":"some translation",
"outlang":"some lang",
"translations" : {
{
"translation":"some translation 1"
"outlang": "some lang 1"
"translations" : {...}
}
}
},
...
}
}
我想在这些文件中找到一份译文。但是,此翻译可以存在于本文档的任何级别。是否可以使用elasticsearch动态搜索术语
比如说,
{
"query": {
"*.translation":"searchterm"
}
}
提前感谢不,我认为目前ElasticSearch中没有内置此功能。这个答案表明,但这将是非常缓慢的
一般来说,ES不能很好地处理嵌套数据。它支持嵌套字段,但许多更高级的搜索功能无法对复杂的嵌套数据进行操作。我的建议是对数据进行非规范化,使每个翻译都由索引中的单个项目表示,并用ID号链接它们。不,我不相信目前ElasticSearch中内置了此功能。这个答案表明,但这将是非常缓慢的
一般来说,ES不能很好地处理嵌套数据。它支持嵌套字段,但许多更高级的搜索功能无法对复杂的嵌套数据进行操作。我的建议是对您的数据进行非规范化,以便每个翻译都由索引中的一个项目表示,并用ID号在它们之间进行链接。我已经通过以下查询成功地做到了这一点
{
"query": {
"query_string": {
"query": "someterm",
"fields": ["*.translation"]
}
}
}
或
您可以看到elasticsearch google group conversation我已经通过以下查询实现了这一点
{
"query": {
"query_string": {
"query": "someterm",
"fields": ["*.translation"]
}
}
}
或
您可以看到elasticsearch google group conversation感谢您的回复,我已经通过构建一个如上所述的查询成功地做到了这一点。您可以看到我的答案和google group Conversations感谢您的回复,我已经通过构建一个查询实现了这一点,正如我前面提到的。你可以看到我的答案和谷歌群组对话