如果您的应用程序/ api在vanilla Phoenix应用程序中启动,您是否会将要运行的代码放入?假设我想确保创建一些mnesia表或配置我的记录器后端.另一件事是运行时配置.他们在文档中提到它,但我不清楚在哪里定义/更改运行时配置.
Endpoint.ex 看起来像是一个完成初始配置的地方,但通过查看文档,我找不到任何允许我在启动时只运行一次代码的回调.
我有一个使用Yeoman gulp typescript生成器生成的Angular应用程序.
在构建打字稿期间突然没有任何明显的原因(项目中的更改)开始抛出错误:
.tmp/typings/moment/moment-node.d.ts(6,16): error TS2300: Duplicate identifier 'moment'.
[22:08:34] [TypeScript] TypeScript error: .tmp/typings/moment/moment-node.d.ts(6,16): error TS2300: Duplicate identifier 'moment'.
.tmp/typings/moment/moment.d.ts(8,13): error TS2300: Duplicate identifier 'moment'.
Run Code Online (Sandbox Code Playgroud)
请参阅以下文件的内容以供参考.我删除"TSD:安装"从gulp script任务,以防止从构建覆盖d.ts文件和tsd.d.ts文件.然后试图修改tsd.d.ts来解决问题(我试图删除时刻节点,那一刻,变更单,我也尝试过编辑moment.d.ts和矩node.d.ts,没有什么工作:/) .
我的tsd.json文件:
{
"version": "v4",
"repo": "borisyankov/DefinitelyTyped",
"ref": "master",
"path": ".tmp/typings",
"bundle": ".tmp/typings/tsd.d.ts"
}
Run Code Online (Sandbox Code Playgroud)
我的script.js(gulp taks):
'use strict';
var path = require('path');
var gulp = require('gulp');
var conf = require('./conf');
var browserSync = require('browser-sync');
var $ = require('gulp-load-plugins')();
var tsProject = $.typescript.createProject({
target: 'es5',
sortOutput: true
});
gulp.task('scripts', ['tsd:install'], function …Run Code Online (Sandbox Code Playgroud) 我正在基于ElasticSearch对电子商务产品目录进行原型设计.每个产品都被索引为一个文档(其中包含名称和描述等属性).
有一件事我无法解决,我想根据用户的购买历史来提高某些产品的得分.
我能想到的唯一选择是将购买历史存储为产品的子文档.然后使用custom_filters_score和过滤器来查找具有给定userId的子文档.在这种情况下,过滤器确定给定用户是否已购买给定产品,如果是,则会提高分数.
这种方法的问题在于,某些产品每个月可能会被购买数十万次,而且我不确定ElasticSearch在这种情况下的表现如何.
完美的解决方案是,如果我可以将购买历史记录放在单独的索引或相同的索引中,而是作为不同的文档类型(比如'userspurchasehistory').示例文档:
{userId: 1234, purchesedProducts: [34,112323,1223,32342,31234]}
Run Code Online (Sandbox Code Playgroud)
然后使用表达如下内容的查询得分提升:如果术语34(productId)存在于'userId'等于1234的userspurchasehistory(type)文档的'purchesedProducts'(字段名称)中,则按因子2提升查询.
这里有什么想法或想法吗?
更新:
我已对大型产品目录和大量销售数据进行了一些测试:产品(类型)文档数:500 000 SalesHistory(类型)文档数:14 000 000索引大小:2.5GB Elastic Serach:一个节点,所有默认设置
SalesHistory docuemtns是产品文档的子文档.销售分录:
~20% of products: 40 entries
~20% of products: 30 entries
~20% of products: 20 entries
~20% of products: 10 entries
~20% of products: 5 entries
200 products with 10 000 sales entries (plus previously added 5-40 entries)
200 products with 5 000 sales entries (plus previously added 5-40 entries)
200 products with 2 500 sales entries (plus previously added …Run Code Online (Sandbox Code Playgroud) 我有两个hot/warm observable,一个提供用户角色定义列表和第二个用户列表(这些ReplaySubject(1)的工作方式类似于BehaviorSubject而没有起始值).
要显示用户,我需要确保我有角色定义列表.此外,如果角色列表更改或用户更改列表,我必须重新呈现列表.
我想用rxjs的功能并结合这两个observable来获得我描述的语义.我尝试了许多运算符,如switchMap,mergeMap,faltMap,forkJoin和zip但是我无法使其工作.
我能使它工作的唯一方法是使用两个这样的订阅:
this.userRoleStore.observable.subscribe((roles) => {
this.roles = roles;
if (this.users == null) {
this.userStore.observable.subscribe(users => {
this.users = users;
})
}
});
Run Code Online (Sandbox Code Playgroud)
这样我确保在尝试渲染用户之前就拥有了角色,并且只要用户和角色发生变化,它就会更新.
最有希望的是拉链操作器,但是当只有一个可观察到的变化时它不会触发.只有当第一个observable具有新值时才会触发SwitchMap运算符(因此我只获得有关用户或用户角色更改的更新).
我正在尝试配置团队城市以运行 angular 5 应用程序构建。我有这个脚本的 powershell 步骤(它在构建步骤定义中,而不是单独的文件中)。npm run build跑ng build
npm install
npm run build
Run Code Online (Sandbox Code Playgroud)
出于某种原因,即使ng build团队城市建设失败也不会失败。来自的状态代码npm run不会传播回 powershell。