gpt4 book ai didi

ruby-on-rails - Elasticsearch需要*所有*关联进行映射?

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

我有一个大型模型(基本上是我的整个应用程序)。我在这个模型上有7个或更多的关联,包括许多到很多的:through =>等。该模型还具有一些简单的属性(标题,URL等)。

我唯一关心的是建立3个或4个简单属性(标题,URL,描述,类别)的索引。其余的我不在乎。

当我使用load: true时,一切工作正常,但是一旦我关闭它,一切都会中断。解决此问题的唯一方法似乎是为每个单个关联添加复杂的映射,:touch,:touch回调等等。

我希望我理解这个错误,因为仅通过3个或4个简单属性进行搜索,这将是大量的代码。

我不知道我在说什么,但是我可以搜索Elasticsearch索引,但是返回ID列表,然后以正常的方式遍历那些ID吗?

谢谢!

最佳答案

我不确切知道轮胎内部如何工作,但是据load选项为true时,据文档了解,它会从数据库加载每条记录。这就是为什么我不希望您在生产中使用它的原因。如果没有该选项,Tire将从 flex 搜索中检索信息,因为您应该将大多数要显示的数据存储在 flex 搜索中。可能您需要向Elasticsearch添加更多存储的信息。您可以执行此操作以配置要存储在映射中的字段,否则,elasticsearch中始终具有source字段,这正是您索引的JSON文档。

您最后一个问题的答案是肯定的。您可以选择要从elasticsearch中返回的fields,而不是取回整个source。就您而言,如果我理解正确,则可以配置唯一的id字段。我不知道如何用Tyre做到这一点,但就Elasticsearch请求而言,您可以在网址中执行以下操作:

curl localhost:9200/_search?fields=id -d '{
"query" : {
"match_all" : {}
}
}'

或像这样直接在您的查询中:
{
"fields" : ["id"],
"query" : {
"match_all" : {}
}
}

关于ruby-on-rails - Elasticsearch需要*所有*关联进行映射?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12593405/

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