我在弹性搜索中搜索时遇到问题。我有带字段title
和gender
的索引product
当我用default_field: title
进行查询时,我只需要用gender=male
(不是女性或其他人(获得结果
查询:dress AND gender:male
结果包含两种性别:male
和female
以及male,female
在我看来,gender:*
搜索所有包含male
的内容,但不是完全匹配的值。如何正确查询?
我通过RubyonRails 使用它
Product.search({
query: {
query_string: {
query: query,
default_field: "title"
}
},
size: per_page,
sort: [ _score: { order: relevance } ]
})
性别是keyword
数据类型吗?我怀疑您将默认映射保留/设置为gender
字段(即文本+关键字子字段(。在这种情况下,请尝试以下查询:dress AND gender.keyword:male
根据这个,我只需要把值放在双引号中。。
query = '(dress) AND (gender:"male")'
如果需要,不要忘记逃离"gender:"male""