gpt4 book ai didi

ruby-on-rails - 对ElasticSearch 5.x的条件查询(elasticsearch-rails/elasticsearch-model)

转载 作者:行者123 更新时间:2023-12-03 00:56:01 25 4
gpt4 key购买 nike

ElasticSearch的新手,我想知道是否有一种构造条件查询/过滤器的方法。我正在与Rails一起工作,所以我认为它必须处于特定级别,因为我找不到指向ES级条件查询的任何内容,而且我敢肯定,只是假设而已!

所以这是我有(工作)的查询:

search_definition = {
query: {
bool: {
must: [
{
more_like_this: {
fields: tag_types,
docs: [
{
_index: self.class.index_name,
_type: self.class.document_type,
_id: id
}
],
min_term_freq: 1
}
}
],
should: [
range: {
age: {
gte: min_age,
lte: max_age,
boost: 4.0
}
}
],
filter: {
bool: {
must: [
term: {
active: true
}
],
must: [
geo_distance: {
distance: xdistance,
unit: "km",
location: {
lat: xlat,
lon: xlng
},
boost: 5.0
}
]
}
}
}
},
size: how_many
}

而且效果很好。现在,假设我想应用其他过滤器,在这个特定示例中,我需要验证正在搜索的用户何时,另一端的用户实际上是在为搜索对象寻找性别对象。它保存在数据库中的2个独立的 bool(boolean) 属性中(男性/女性)。我认为准备两个类似的过滤器将很简单-但是,查询中会运行更多的条件过滤器,最终我会得到十多个预先准备的过滤器。必须有一种更优雅的方式!谢谢!

最佳答案

您对elasticsearch search templates 熟悉吗?
使用搜索模板,您可以查询conditionaldynamic。例如,您可以具有要进行术语过滤的字段和值的列表,并将其作为参数传递给搜索模板。

关于ruby-on-rails - 对ElasticSearch 5.x的条件查询(elasticsearch-rails/elasticsearch-model),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43955921/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com