小编Fro*_*its的帖子

Elasticsearch复制其他系统数据?

假设我想使用elasticsearch在网站上实现通用搜索.顶部搜索栏将在整个站点中找到所有不同类型的资源.文件肯定(通过tika上传/索引),还有客户,帐户,其他人等.

出于架构原因,大多数非文档内容(客户端,帐户)将存在于关系数据库中.

在实现此搜索时,选项#1将创建所有内容的文档版本,然后只使用elasticsearch来运行搜索的所有方面,完全不依赖于关系数据库来查找不同类型的对象.

选项#2将仅使用elasticsearch来索引文档,这意味着一般的"站点搜索"功能,您必须将多个搜索分配到多个系统,然后在返回之前聚合结果.

选项#1看起来要好得多,但缺点是它要求弹性搜索本质上在生产关系数据库中有许多东西的副本,并且随着事物的变化,这些副本会保持新鲜.

保持这些商店同步的最佳选择是什么?我认为对于一般搜索,选项#1更优越吗?有选项#3吗?

architecture elasticsearch

49
推荐指数
2
解决办法
1万
查看次数

重写语义 ui 反应中的样式

我正在使用语义 UI React并尝试找到覆盖默认样式的最佳方法,以便我可以更改卡片的外观和整体主题。

选项 1 似乎是定义我的 CSS 并在每条规则之后放置 !important,这不太好。

Option 2 is the theming support, which sounds like what I want, except I cannot determine how to get started with that. My app is using CRA, and I'm a bit lost in documentation between changing my webpack configuration file (I don't have one), out of date blog posts from 2017 advising me to install a bunch of modules whose purpose is unclear, and the theming site itself which …

css semantic-ui-react

13
推荐指数
2
解决办法
1万
查看次数

如何在docker中为debian创建声音设备?

我正在使用各种码头集装箱,它们是在Debian sid上建造的.这些图像缺乏/dev/snd/dev/snd/seq,这非常有道理的,因为他们没有硬件音频卡.

我用来生成MIDI文件的几个软件需要这些音序器设备.它们不一定用于发送音频,但如果声音设备不存在,代码本身将在init中死亡.为了清楚起见,我不需要在docker中生成音频信号,而是我只需要存在这些信号以使其他软件满意.

到目前为止,我已经试过被无休止地安装各种ALSA包(alsa-utils,alsa-oss,等),并试图以modprobe我的出路,这一切没有运气.

在docker容器中,即使是虚拟的,有什么需要有效的音频设备呢?

audio debian alsa docker

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

针对"相关"资源的REST设计

假设我有一个拥有多个帐户的客户.实际上任何与另一个复杂对象具有"1对多"关系的数据对象都可以.

一个例子可能是:

{ id: 1, name: "Bob", accounts: [ { id: 2, name: "Work account" }, { id: 3, name: "Home account" } }

我的问题是,何时将帐户作为客户的子资源公开,而不是作为单独的资源?或两者?

例如,我的第一个直觉就是:/customers/1返回上面的对象.如果您想修改其中一个帐户,则必须这样POST/accounts/2.

另一种方法(我在一些API中看到)是暴露另一个路由/customers/1/accounts,它将返回上面的数组,然后在那里设置POST/ PATCH路由以允许API用户改变帐户数组.

我对这种方法的问题在于,如果帐户数组实际上是"通过引用包含",那么REST路由是否正在修改帐户或者仅仅是修改客户与帐户之间的链接还不是很清楚.

这里有最好的做法吗?

rest api-design

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

Neo4j 聚合和求和

在此处输入图片说明

如果我的问题微不足道,我很抱歉,我是 neo4j 的菜鸟。

我正在尝试编写一个密码查询,它将从 [sum ( mass_of * contains ) 的值中找到所有紫色节点的降序顺序,用于从紫色到红色的所有路径]

示例:在图片中,对于所有红色路径,它将是 [( mass_of * contains )] 然后对所有红色路径求和。

我从这个查询开始,但我不知道从哪里开始。

MATCH p0=(p:Purple)-[m:mass_of]->(g:Green)-[c:contains]->(r:red {name: "something"})
WITH m, c.amount * m.amount as total_per_path
WITH total_per_path, reduce( total=0, node IN collect(m)| total + total_per_path) AS total_something
RETURN total_something as TOTAL, total_per_path as PER_TOTAL_PATH
Run Code Online (Sandbox Code Playgroud)

...

谢谢你的帮助。

neo4j cypher

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

Google pubsub 变成 HTTP 触发的云功能?

是否可以触发 HTTP 云功能以响应 pubsub 消息?

编辑订阅时,谷歌可以将消息推送到 HTTPS 端点,但出于滥用原因,必须能够证明您拥有该域才能执行此操作,当然您无法证明您拥有谷歌自己的*.cloudfunctions.net域,这是他们部署的地方。

我试图订阅的特定主题是一个公共主题,projects/pubsub-public-data/topics/taxirides-realtime. 答案可能是使用后台函数而不是 HTTP 触发,但由于不同的原因,这不起作用:

gcloud functions deploy echo --trigger-resource projects/pubsub-public-data/topics/taxirides-realtime --trigger-event google.pubsub.topic.publish ERROR: gcloud crashed (ArgumentTypeError): Invalid value 'projects/pubsub-public-data/topics/taxirides-realtime': Topic must contain only Latin letters (lower- or upper-case), digits and the characters - + . _ ~ %. It must start with a letter and be from 3 to 255 characters long.

这似乎表明这仅适用于我拥有的主题,这是一个奇怪的限制。

google-cloud-pubsub google-cloud-functions

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

使用graal python从java获取外部环境参数

我在GraalVM中运行Java来使用它来执行python.

Context context = Context.create();
Value v = context.getPolyglotBindings();
v.putMember("arguments", arguments);

final Value result = context.eval("python", contentsOfMyScript);
System.out.println(result);
return jsResult;
Run Code Online (Sandbox Code Playgroud)

问题是python代码应该如何接收"参数".graal文档说明如果这是JS,我会做这样的事情:

const args = Interop.import('arguments');
Run Code Online (Sandbox Code Playgroud)

确实,这很有效.python等价物可能是:

import Interop
args = Interop.import('arguments')

def main():
    return args

main()
Run Code Online (Sandbox Code Playgroud)

这失败了,因为没有这样的模块.我找不到如何从外部语言层获取这些参数的文档,只有pythongraal上的文档以及如何使用python传递给其他东西.

python java graalvm

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

减少案例类模型的Slick定义中的样板

在学习play-slick,并设置最终保存到PostgreSQL的模型类时,我看到了这种模式(下面的代码).有一个简单的case类充当模型,然后扩展Table处理关系映射.

case class Cat(name: String, color: String)

/* Table mapping
 */
class CatsTable(tag: Tag) extends Table[Cat](tag, "CAT") {

  def name = column[String]("name", O.PrimaryKey)
  def color = column[String]("color", O.NotNull)

  def * = (name, color) <> (Cat.tupled, Cat.unapply _)
}
Run Code Online (Sandbox Code Playgroud)

在许多常见的情况下,这让我感到非常不满,但我只是在学习,所以我不知道我在这里缺少什么.是否有一种更简单的方法可以开始使用case class Cat并最终得到一个可以用于数据库中Cat的CRUD实例的对象?例如,似乎没有必要指定类型的属性String应该最终成为a column[String],依此类推.在其他框架中,我可能需要添加注释或其他内容来指示我想要成为主键,还是不可为空,但我不会真正编写单独的映射.通过手工编写这些映射,我大多只是花费更多的时间并且有机会以微妙的方式将其搞砸到其他简单的情况.

我最理想的是首先case class Cat,在它上面洒上魔法框架灰尘,并获得CatsTable合理的默认值,我可以根据需要覆盖/自定义.

当我在搜索文档时,我通常最终会回到模式代码生成,但这似乎是倒退的; 我不想从现有/填充RDBMS生成表映射,我想从头开始.

scala playframework slick

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

是否可以通过 procfs 确定进程已打开哪些 fds 进行读取和写入?

procfs 会告诉我进程在任何给定时间正在使用哪些 fd。但是有没有办法确定哪些是开放的阅读和写作?

在下面的输出中,进程所有者(用户“x”)显然具有对链接/文件的读/写访问权限,但这与知道 pid 4166 是写入还是读取特定 fd 不同。

$ ls -l /proc/4166/fd/
共 0
lrwx------ 1 xx 64 Mar 12 21:15 0 -> /dev/pts/3
lrwx------ 1 xx 64 Mar 12 21:15 1 -> /dev/pts/3
lrwx------ 1 xx 64 Mar 12 21:15 2 -> /dev/pts/3
lrwx------ 1 xx 64 Mar 12 21:15 255 -> /dev/pts/3

我知道 lsof 实用程序可以做到这一点:

$ lsof -p 4166 | grep CHR
bash 4166 x 0u CHR 136,3 0t0 6 /dev/pts/3
bash 4166 x 1u CHR 136,3 …

linux linux-kernel procfs

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

如何对按一些谓词分组的属性求和

我有很多这种形式的节点和关系:

(e:Employee)-[r:charged_project { hours: 10 }]->(p:Project { name : "Foo")

如何制定一个查询,为我提供所有项目的列表,以及针对它们的总小时数?(即入站的所有"小时"属性的总和:charged_project关系)

neo4j cypher

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