我有一个带有嵌套映射的索引。我想预先形成一个查询,该查询将返回以下内容:给我搜索词中每个单词出现在一个或多个嵌套文档中的所有文档。
以下是索引:
properties: {
column_values_index_as_objects: {
type: "nested",
properties: {
value: {
ignore_above: 256,
type: 'keyword',
fields: {
word_middle: {
analyzer: "searchkick_word_middle_index",
type: "text"
},
analyzed: {
term_vector: "with_positions_offsets",
type: "text"
}
}
}
}
}
}
以下是我尝试的最新查询:
nested: {
path: "column_values_index_as_objects",
query: {
bool: {
must: [
{
match: {
"column_values_index_as_objects.value.analyzed": {
query: search_term,
boost: 10 * boost_factor,
operator: "or",
analyzer: "searchkick_search"
}
}
}
例如,如果我搜索单词“食物和水”,我希望每个单词至少出现在嵌套文档中。即使只有一个单词存在,当前搜索也会返回文档
谢谢你的帮助!
更新:正如克里斯托所建议的,解决方案有效。现在我有以下问题。
这是我的索引:
properties: {
name: {
type: "text"
},
column_values_index_as_objects: {
type: "nested",
properties: {
value: {
ignore_above: 256,
type: 'keyword',
fields: {
word_middle: {
analyzer: "searchkick_word_middle_index",
type: "text"
},
analyzed: {
term_vector: "with_positions_offsets",
type: "text"
}
}
}
}
}
}
我要执行的查询是,如果我搜索“我的名字是guy”,并将给出找到所有单词的所有文档-可能在嵌套文档中,也可能在名称字段中。例如,我可以在名称字段中有一个值为“guy”的文档,在嵌套文档中有其他单词
为了做到这一点,我通常拆分条款并生成如下请求(foo:bar是其他字段上的其他条件):
{
"bool": {
"must": [
{
"nested": {
"path": "column_values_index_as_objects",
"query": {
"match": {
"column_values_index_as_objects.value.analyzed": {
"query": "food",
"boost": "10 * boost_factor",
"analyzer": "searchkick_search"
}
}
}
}
},
{
"nested": {
"path": "column_values_index_as_objects",
"query": {
"match": {
"column_values_index_as_objects.value.analyzed": {
"query": "and",
"boost": "10 * boost_factor",
"analyzer": "searchkick_search"
}
}
}
}
},
{
"nested": {
"path": "column_values_index_as_objects",
"query": {
"match": {
"column_values_index_as_objects.value.analyzed": {
"query": "water",
"boost": "10 * boost_factor",
"analyzer": "searchkick_search"
}
}
}
}
},
{
"query": {
"term": {
"foo": "bar"
}
}
}
]
}
}
问题内容: 这是我在elasticsearch中存储在索引上的数据类型。我必须找到包含主要成分牛肉(且重量小于1000)和成分-(辣椒粉且重量小于250),(橄榄油和重量小于300)以及所有其他成分类似的食谱。 索引的映射是 我的查询是 但这给了Null。有人可以帮我吗?我认为我没有正确使用嵌套查询 问题答案: 试试这个:
尊敬的弹性搜索专家, 我在查询嵌套对象时遇到问题。允许使用以下简化映射: 并将一些文档放在索引中: 现在我想执行这样的查询: 因此,我想得到匹配的公司与数量匹配的文件。因此,上面的查询应该会告诉我: 以下查询: 应该给我所有公司分配到一个文件,其标题包含“GPU”与匹配的文件数量: 如果表现良好,是否有可能实现这一结果?我显然对匹配的文档不感兴趣,只对匹配文档和嵌套对象的数量感兴趣。 谢谢你的帮助
让我们考虑一下这些帖子的集合。每个帖子都有一个评论数组,每个评论都有一个字符串数组,带有键“likes”,表示喜欢该评论的用户。 如何使用mongoose检查用户是否喜欢具有给定ID的评论?
有了jOOQ惊人的多集算子,我们能够查询嵌套列表并将其映射到pojo对象。现在,我试图找到一种方法来同时映射单个嵌套对象。例如,我有一个组合的自定义pojo类,如: 我想在一个步骤中查询并获取它。因此,我目前的工作解决方案是: 这包括一个预初始化的字段列表,其目的是以某种方式告诉JOOQ从“教师”映射教师对象。*”列。 我现在想知道在这方面是否有更直观的解决方案。我曾尝试使用row运算符,但到目前
我正在努力编写一个具有多个和/或条件的弹性搜索查询。 它的基本逻辑如下: 正如docs中提到的,如果一个文档只满足must子句,那么它就被认为是匹配的。在这种情况下,should子句起到增强作用,即如果文档除了mouth子句之外还匹配一个或多个should子句,那么它将具有更高的相关性得分,假设cond2、cond3和cond4是计算相关性得分的查询。 问题是我只想要至少匹配OR条件之一的文档。
问题内容: 我有一个如下所示的elasticsearch索引集合, 现在,我需要通过匹配其值来搜索文档。(是一些字段,其值存储在其中)对于字段,如果与上面的文档匹配。 我尝试将其映射为嵌套对象,但是无法编写查询来搜索2个或更多匹配其各自值的查询。 问题答案: 这就是我要做的。您需要通过(或)两个嵌套查询对每个条件对进行AND 运算,因为您要匹配同一父文档中的两个不同的嵌套元素。