小编Wil*_*ler的帖子

如何索引jsonb整数值

我正在尝试使用"newish"JSONB类型.

我有一个documents带有propertiesjsonb字段的表,在那里是一个字段publication_year.我想查找一年范围内的所有文件记录,例如2013-2015. [编辑:查询一系列值是这里的主要挑战,即使我使用了下面的完全匹配示例.请求的方法也适用于美元范围(价格> 20美元,价格<40美元)或时间戳范围).

我试过了:

create index test1 on documents using gin ((cast(properties->'announced_on_year' as integer)));

ERROR:  cannot cast type jsonb to integer
Run Code Online (Sandbox Code Playgroud)

以及:

create index test1 on documents using gin (cast(properties->>'publication_year' as integer));

ERROR:  data type integer has no default operator class for access method "gin"
HINT:  You must specify an operator class for the index or define a default operator class for the data type.`
Run Code Online (Sandbox Code Playgroud)

我从这篇文章中看到http://www.postgresql.org/message-id/10736.1409063604@sss.pgh.pa.us这应该是可能的,但我无法弄清楚正确的语法.

当我只做一个简单的索引:

create index test1 on …
Run Code Online (Sandbox Code Playgroud)

postgresql indexing gwt-gin jsonb

9
推荐指数
2
解决办法
4593
查看次数

JSONb日期:内部的实际日期?

我正在使用postgresql jdbc适配器将一堆数据迁移到jsonb字段(postgres 9.4).

导入后,日期字段看起来正确但显示为双引号.有没有办法判断它们是否实际存储在内部作为日期值?如果它们是字符串,我认为范围查找不会非常有效.

例如,propertiesjsonb字段中的条目如下所示:

"founded_on": "Sep 1, 2012 12:00:00 AM",

我现在可以搜索,比方说,

SELECT CAST(properties->>'founded_on' AS DATE

SELECT extract('year' from cast(properties->>'founded_on' as timestamp))

并且两者都工作正常,但不要告诉我Postgres是否每次都在jsonb字段中重新分析字符串值作为日期.

我可以创建一个索引,我将这些值转换为日期,并使用它来搜索,但它似乎有点不优雅.我真的更愿意知道存储的值是一个日期.整数和浮点数似乎是它们的实际原始值,而不是字符串,如下所示:

shares_sold": 5900000,

"latitude": 33.561467,

任何反馈都高度赞赏.

postgresql date jsonb

7
推荐指数
1
解决办法
6727
查看次数

如何在 THREEJS 网格中对共面三角形进行分组?

我正在开发一种建模工具,可以让您直接操作网格。例如,您可以抓住一张脸并将其拖动。用户对“脸”的感知可能是多个共面三角形。例如,立方体的顶“面”实际上是两个三角形,它们被拖到一起形成一个正方形。

为了实现这一点,我想收集任何特定三角形的所有共面、相邻面,以便在拖动时使用。我已经查看了Simplifier以及这篇文章作为示例,但我想保留底层三角形,而不是减少/删除它们。

在过去的美好时光,您可以构建一个边缘模型 ala Mantlya,您可以在每个边缘上行走以查看相邻的面并检查法线。

我希望可能已经为 THREEJS 编写了一些代码,将共面三角形组合在一起。如果我从头开始写这个,我能想到的最好的算法是 O(n^2),类似于:

  1. 通过遍历所有面的所有顶点来构建边缘哈希(两个方向)。每个条目都是一个包含 2 个面指针的数组。您只需在创建或修改网格时执行此步骤一次。
  2. 当用户选择要操作的面孔时,创建空的评估堆栈并将选取的面孔放入该堆栈中。另外,创建空的共面面阵列。
  3. 将面从评估堆栈中弹出,并遍历该面的边缘。在边缘散列中查找与该边缘相邻的所有面。如果面共面,则将该面推入计算堆栈并存储在共面面数组中。
  4. 重复步骤 3-4,直到计算堆栈为空。

当该算法完成时,您应该拥有一个所有面共面且与开始的面相邻的数组。但对我来说,这似乎效率相对较低。

欢迎任何和所有建议/指示!

algorithm computational-geometry three.js geometry-surface

5
推荐指数
1
解决办法
2542
查看次数

无法使用chrome:NET:ERR_CERT_AUTHORITY_INVALID浏览到twitter

在我将Ghostery安装到Chrome(MacOS 10.0.5,Chrome版本42.0.2311.90(64位),完全更新)之后,突然Chrome无法在不抱怨赛门铁克Class 3 EV SSL CA的情况下浏览twitter.com G3无效.我删除了此扩展程序,重新启动了Chrome,甚至重新启动了计算机,但问题仍然存在.

Safari也抱怨,但有趣的是,Firefox仍然无需投诉即可访问twitter.com.所以这对我来说意味着Keychain Access存储的证书是可以的.

有没有人看过这个/知道如何解决?到目前为止,我已经检查过计算机的时间没问题了(有些帖子说这可能是一个问题),并验证了有关使用Firefox访问我的Twitter帐户的一切都很好.

如果Chrome和Safari中存储了某些版本的证书,我可以清楚解决这个问题,这很好,但清除通用内容缓存似乎没有做任何事情.

任何想法都赞赏.

twitter macos google-chrome-extension

1
推荐指数
1
解决办法
3215
查看次数