gpt4 book ai didi

sorting - 轮胎/Elasticsearch:排序无效

转载 作者:行者123 更新时间:2023-12-03 02:09:14 27 4
gpt4 key购买 nike

我正在使用tire gem从我的Rails应用程序访问 Elasticsearch 。我的代码生成以下查询,据我所知docs for sort是正确的:

[2013-08-09 15:06:08,538][DEBUG][action.search.type       ] [Nitro] [tweets][3], node[INKC2ryGQ4Sx1qYP4qC-Og], [P], s[STARTED]: Failed to execute [org.elasticsearch.action.search.SearchRequest@54daad1d]
org.elasticsearch.search.SearchParseException: [tweets][3]: query[ConstantScore(*:*)],from[-1],size[-1]: Parse Failure [Failed to parse source [{
"query": {
"match_all": {

}
},
"sort": [
{
"author": "asc"
}
],
"filter": {
"terms": {
"entities_ids": [
"10"
]
}
},
"size": 10,
"from": 0
}]]

生成它的方法如下所示:
  def Tweet.search_tweets(params = {})
Tweet.search(page: params[:page], per_page: params[:per_page]) do

if params[:query_string].present? || params[:sentiment].present? ||
(params[:start_date].present? && params[:end_date].present?)
query do
boolean do
if params[:query_string].present?
must { string params[:query_string], default_operator: "AND" }
end

if params[:sentiment].present?
must { term :sentiment, params[:sentiment]}
end

if params[:start_date].present? && params[:end_date].present?
must { string "created_at:[#{params[:start_date]} TO #{params[:end_date]}]"}
end
end
end
else
query do
all
end
end

if params[:entity_id].present?
filter :terms, entities_ids: [params[:entity_id]]
end

if params[:sort].present?
sort { by params[:sort][:by], params[:sort][:order] }
end

end

结束

我完全不知道为什么这行不通。

最佳答案

我在排序时遇到类似的问题...取决于您如何对该字段建立索引。如果它是一个标记字符串,您可能会遇到困难。相反,您可以使用多字段而不分析它,或者可以使用基于_source的_script排序:

{   "query": {
"query_string": {
"query": "something or other"
} }, "sort": {
"_script": {
"script": "_source.contentLegend",
"type": "string",
"order": "desc"
} } }

希望那有所帮助!

关于sorting - 轮胎/Elasticsearch:排序无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18147469/

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