问题标签 [pyelasticsearch]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 在 Elasticsearch 中查询嵌套对象
我有一个产品-商家映射,如下所示
“产品”具有对象,例如 product_id 、 product_name 、 product_price 。产品和商家被映射,这样:
数据以所需的形式顺利索引。现在,当我从给定索引查询数据时,我按以下方式进行:
此查询为我提供了索引中商家名称为 "Sir John" 的所有产品的结果。但是,我希望它返回“约翰爵士”出售的产品“香草”的详细信息。
根据某人的建议,我在查询时使用了“_source”,但这并没有帮助。
如何从商家的整个“目录”索引中挑出单个对象的信息?
elasticsearch - 如何在 Elasticsearch 中获取满足特定查询的所有不同字段值?
我的示例文档如下所示。
我想获取所有带来价格在4000到10000之间,长度在50到100之间的产品的用户。下面的查询返回所有满足上述条件的文档。
在这里,我将获取满足上述查询子句的所有文档,我什至可以通过指定来预测我的响应,"_source" = ["user"]
这样我就不会得到整个文档,而只是user
相反,我想要的是所有独特的不同用户的列表。而不是所有可能具有user
重复字段的文档。
像下面这样的聚合
聚合所有文档,而不是我想要对满足任何查询的文档进行聚合。我觉得我错过了一个简单的事情,比如在我的聚合中定义我的查询。但我不知道它是什么。
elasticsearch - 嵌套数组上的 Elasticsearch 日期直方图聚合
以下是我的 elasticsearch 索引中的几个示例文档:
和
现在我需要查找每天的文档数量和每天的评论数量。我可以通过使用日期直方图获得每天的文档数量,它给了我正确的结果。我进行以下聚合查询
但是当我每天尝试类似的事情来获取评论时,它会返回不正确的数据,(对于 1500 多条评论,它只会返回 160 条奇数评论)。我正在做以下查询:
我想知道如何得到想要的结果?elasticsearch有没有办法得到我想要的?如果我需要提供任何其他信息,请告诉我。
预期输出:
elasticsearch - Elasticsearch 中的聚合按参数分组
我在 elasticsearch 中有类似的文档:
{
"numberOfBedrooms": 2,
"price": 1500,
"type": flat
}
我想获得统计数据,例如按房间划分的平均价格是多少,按类型划分的平均价格是多少,以及组合的平均价格是多少,例如每个 numberOfBedroom+type 组合的平均价格是多少。如何在弹性搜索中使用聚合来实现这一目标?
谢谢!
elasticsearch - 在弹性搜索中使用聚合和过滤器
我有一个弹性搜索运行这样的文档:
我正在尝试使用聚合来获取有关使用聚合的某个区域的统计信息,并且我正在使用的查询如下:
但在结果中我看不到聚合。只要我删除查询的布尔或过滤部分,我就可以看到聚合。我不知道为什么会这样,也不知道如何获得这些过滤器的聚合。我已经尝试使用这个问题的答案,但我无法解决它。有任何想法吗?
django - 使用http身份验证的Django Haystack连接错误
我正在使用 Haystack 与安装的 elasticsearch 进行连接和交互。Elasticsearch 安装在与主网络服务器不同的盒子上。
我已经使用 nginx 在弹性搜索框上设置了 HTTP 身份验证。这是为了阻止对 elasticsearch 的未经授权的访问。
Haystack 配置如下所示:
通过此设置,我收到连接错误:
如果我关闭 HTTP 身份验证并相应地更新 URL,http://DOMAIN:PORT/
则连接没有问题。
难道是Haystack(或elasticsearch-py(http://www.elasticsearch.org/guide/en/elasticsearch/client/python-api/current/)不允许在URL中使用HTTP身份验证?我注意这是 Solr 的问题 - Solr 身份验证(使用 Django Haystack)
elasticsearch - ElasticSearch:使用多个加权函数进行排名;使用 random_score 时忽略其他函数
我想要一个复杂的排名,它由我想要加权并与搜索_score 相乘的几个函数组成。我知道使用 function_score -> functions 参数可以做到这一点。这是我所拥有的(注意,这是 Python):
笔记:
- 每个文档都有一个“分数”字段,其中包含一个介于 0 和 1 之间的数字
- “种子”是根据用户 ID 和当前日期生成的
观察到的行为:
- 如果我注释掉 field_value_factor 函数,结果是随机排列的。
- 如果我注释掉 random_score 函数,结果将按其 score 字段排序。
- 如果我什么都不注释掉,结果和只有随机的一样:第二个函数似乎被忽略了
- 即使将权重更改为极端值也不会对排名产生任何影响
- 此外,在 field_value_factor 函数中使用“因子”不会做任何事情
- 交换订单也不会改变行为......
我究竟做错了什么?还有其他方法可以调试吗?
编辑:解释输出
刚刚发现了解释命令!这是得分最高的结果的输出。试图把我的头缠在它周围......
编辑2:
所以看起来随机函数总是返回 0,并且与其他因素相乘当然是 0... 为什么会这样?
search - 在 pyelasticsearch 中指定搜索类型
使用pyelasticsearch时有没有办法指定搜索类型?'scan'、'scroll'、'query_and_fetch'等的文档中没有任何内容。运行以下代码:
产生以下错误:
elasticsearch - 如何使用elasticsearch按结果从组中搜索一些单词?
这是示例数据:
在 中type blog_comments
,我有一些评论数据,其结构如下:
而对于#1
和博客,总共#2
有6条评论:type blog_comments
Question: Is it possible using some "magic" queries to get
#1 as the result when I searching "Apple Fruit" and get
#2when I search "Apple Earth" ?
我正在考虑将所有评论加入到每个博客的一个新记录(新类型)中,然后在这个新类型上进行搜索。但是评论太多了(大概有1200万条评论),而且这些评论已经被elasticsearch索引到了,所以还是尽量利用这些数据吧。
elasticsearch - Elasticsearch 聚合按星期几和几小时
我有以下类型的文件:
我想按星期几计算文件数量。例如 x 消息是在星期一发送的,y 是在星期二发送的,以此类推。
我已将 date_histogram 与聚合一起使用,但它会按天返回文档。它确实返回了当天,但是说“Wed, 22”和“Wed, 29”作为单独的聚合文档返回。
这与Elasticsearch 有点相关——按星期几和每小时分组,但这个问题没有答案,所以我重新发布它。根据那里的建议,它要求我对 key_as_string 进行术语聚合,但我需要为每个对象添加 doc_count 而不仅仅是计算术语。我也不知道如何在嵌套聚合中使用 key_as_string。
这是我尝试过的: