我在弹性搜索中遇到问题我无法解决:
我在索引中有两种不同的类型,一种叫做“关键字”,另一种叫做“产品”。 关键字的字符串属性为“keyword_content”,产品的文本属性为“content”。
我需要查询所有关键字及其前N个相关产品。相关关系由标准查询
定义我知道我在ElasticSearch中有父子功能,但是当我插入关键字时我事先并不知道相关产品(唯一的方法是在插入关键字之前,对每个关键字使用搜索查询知道哪些产品是相关的,并使用正确的产品索引关键字,但这意味着在插入之前每次查询,这是昂贵的。)
让我们假设我已经在ElasticSearch中拥有两个UNRELATED类型。如何查询所有关键字及其相关的N相关产品。我正在寻找一种“动态字段”,它是使用查询字符串查询不同类型的结果,每个文档的'keyword_content'属性。
我想要类似的东西:
关键字文档示例:
{ "_id": 1,
"keyword_content": "happy dogs"
}
{ "_id": 2,
"keyword_content": "spaceship"
}
产品文件示例
{ "_id": "P1", "content": "This is a collar for happy dogs"}
{ "_id": "P2", "content": "This is a collar for angry dogs"}
{ "_id": "P3", "content": "This is a spaceship"}
我想要这样的东西(我正在简化弹性搜索格式以更好地解释我的用例)(不是类型不相关,或者我可以将它们联系起来,但我无法指定哪些keyowrds与哪个产品相关,我想要弹性搜索告诉我):
[
{
"_id": 1,
"keyword_content": "happy dogs"
"related_products": [
{ "_id": "P1", "content": "This is a collar for happy dogs"},
{ "_id": "P2", "content": "This is a collar for angry dogs"}
]
},
{
"_id": 2,
"keyword_content": "spaceship"
"related_products": [
{ "_id": "P3", "content": "This is a spaceship"}
]
}
]