gpt4 book ai didi

ruby-on-rails - 在Rails中运行查询后如何检查Elasticsearch token ?

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

我的问题如下:

我在Rails应用程序中使用对索引和搜索分析器的特定设置运行Elasticsearch查询,问题是它没有在应用程序中返回任何结果,另一方面,当我尝试直接从我的Elasticsearch Docker运行它时,我返回 token 。如果我在应用查询中使用这些 token ,则会得到结果...

这是我的elasticsearch查询:

curl -XGET 'localhost:9200/development-stoot-services/_analyze?analyzer=search_francais' -d 'cours de guitare'
{"tokens":[{"token":"cour","start_offset":0,"end_offset":5,"type":"<ALPHANUM>","position":1},{"token":"guitar","start_offset":9,"end_offset":16,"type":"<ALPHANUM>","position":3}]}

这是从我的Rails应用程序到elasticsearch的查询:
query = {
"query" : {
"bool" : {
"must" : [
{
"range" : {
"deadline" : {
"gte" : "2016-05-26T10:27:19+02:00"
}
}
},
{
"terms" : {
"state" : [
"open"
]
}
},
{
"query_string" : {
"query" : "cours de guitare",
"default_operator" : "AND",
"fields" : [
"title",
"description",
"brand",
"category_name"
]
}
}
]
}
},
"filter" : {
"and" : [
{
"geo_distance" : {
"distance" : "40km",
"location" : {
"lat" : 48.855736,
"lon" : 2.32927300000006
}
}
}
]
},
"sort" : [
{
"created_at" : "desc"
}
]
}

最后一个查询不返回任何结果,但是如果我尝试使用由elasticsearch返回的 token (“cour”,“guitar”)进行查询,则可以得到预期的结果。所以我想我找不到Rails和elasticsearch之间的问题...
有人可以帮忙吗?

最佳答案

尝试像这样修改查询,即,您需要在search_francais中指定query_string分析器,以便以与cours de guitare端点相同的方式分析_analyze:

     ...
{
"query_string" : {
"query" : "cours de guitare",
"default_operator" : "AND",
"analyzer": "search_francais", <--- add this line
"fields" : [
"title",
"description",
"brand",
"category_name"
]
}
},
...

关于ruby-on-rails - 在Rails中运行查询后如何检查Elasticsearch token ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37462617/

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