【发布时间】:2015-05-22 06:33:43
【问题描述】:
我想以与查询其他字段相同的方式将多值字段的值查询为单独的“字段”。 我有一个像这样的数据结构:
{
name: 'foo one',
alternate_name: 'bar two',
lay_name: 'baz three',
tags: ['stuff like', 'this that']
}
我的查询如下所示:
{
query:
query: stuff
type: 'best_fields',
fields: ['name', 'alternate_name', 'lay_name', 'tags'],
operator: 'and'
}
“类型”和“运算符”仅在值包含我的整个查询时才匹配单值字段。例如,查询 'foo two' 不会返回匹配项。
我希望标签字段的行为方式相同。现在,查询“stuff that”将在不应该返回匹配项时返回匹配项,因为没有字段或标记值在单个值中包含两个单词。有没有办法做到这一点?
编辑 瓦尔的评估是正确的。我已将映射更新为以下内容(使用 elasticsearch-rails/elasticsearch-model):
mapping dynamic: false, include_in_all: true do
... other fields ...
indexes :tags, type: 'nested' do
indexes :tag, type: 'string', include_in_parent: true
end
end
【问题讨论】:
标签: elasticsearch