我想知道弹性搜索是否需要先验地定义复合索引.通过复合指数,我的意思是像mongodb那样的东西.
db.collection.ensureIndex({field1:1,field2:1,field3:1})
或类似mysql db的东西.
在mytable上创建索引adhoc_index(field1,field2,field3);
所以我处理的数据非常平坦(大多数只是csv格式).它看起来像以下(为了完整性).
field1,field2,...,fieldN
字段数是任意的.一个数据集可能有10个字段,另外20个,另外1000个.我基本上将每行转换为JSON文档,如下所示.
{
"field1" : "value1",
"field2" : "value2",
...
"fieldN" : "valueN"
}
Run Code Online (Sandbox Code Playgroud)
将A,B和C表示为字段的三个互斥子集:{field1,field2,...,fieldN}.在任何给定的时间,我必须构建一个动态查询,过滤A = a,B = b和C = c的记录.
例如,
所以我的elasticsearch DSL查询可能看起来像下面这样(不确定这是否正确,但只是为了说明).
"bool" : {
"must" : [
{"term" : { "field1" : "val1" },
{"term" : { "field2" : "val2" },
{"term" : { "field3" : "val3" },
{"term" : { "field4" : "val4" }
]
} …
Run Code Online (Sandbox Code Playgroud) 我想在http://ngcordova.com/docs/plugins/fileTransfer/上使用cordova-plugin-file-transfer
指定下载位置的示例代码如下.
var targetPath = cordova.file.documentsDirectory + "testImage.png";
Run Code Online (Sandbox Code Playgroud)
但是,此属性不存在.我已经登录console.log(JSON.stringify(cordova.file))
,我得到以下输出(格式化).
{
"applicationDirectory": "file:///android_asset/",
"applicationStorageDirectory": "file:///data/data/com.ionicframework.mobile379071/",
"dataDirectory": "file:///data/data/com.ionicframework.mobile379071/files/",
"cacheDirectory": "file:///data/data/com.ionicframework.mobile379071/cache/",
"externalApplicationStorageDirectory": "file:///storage/emulated/0/Android/data/com.ionicframework.mobile379071/",
"externalDataDirectory": "file:///storage/emulated/0/Android/data/com.ionicframework.mobile379071/files/",
"externalCacheDirectory": "file:///storage/emulated/0/Android/data/com.ionicframework.mobile379071/cache/",
"externalRootDirectory": "file:///storage/emulated/0/",
"tempDirectory": null,
"syncedDataDirectory": null,
"documentsDirectory": null,
"sharedDirectory": null
}
Run Code Online (Sandbox Code Playgroud)
此外,我已经从https://cordova.apache.org/docs/en/dev/cordova-plugin-file/中获得了一些提示,并通过以下更改修改了我的config.xml.
<preference name="AndroidPersistentFileLocation" value="Internal" />
<preference name="iosPersistentFileLocation" value="Library" />
<preference name="iosExtraFilesystems" value="library,library-nosync,documents,documents-nosync,cache,bundle,root" />
<preference name="AndroidExtraFilesystems" value="files,files-external,documents,sdcard,cache,cache-external,root" />
Run Code Online (Sandbox Code Playgroud)
此代码不是在模拟器或浏览器上运行,而是真正的Android设备.关于为什么这个属性为null的任何想法?
当我尝试下载文件时,我得到的只是一个错误.我的代码如下所示.
$cordovaFileTransfer.download(url, path, {}, true)
.then(function(result) {
console.log(JSON.stringify(result));
}, function(err) {
console.log(JSON.stringify(err));
}, function(progress) {
console.log(JSON.stringify(progress));
});
Run Code Online (Sandbox Code Playgroud)
这是错误(格式化).
{
"code": 1, …
Run Code Online (Sandbox Code Playgroud) 我正在使用gulp - typescript将我的TypeScript代码转换为JavaScript.从本质上讲,我想为一个*.ts
文件,还有待相应的*.js
,*.d.ts
而*.map
生成的文件.
在编译任务中,我注意到我只能通过声明或与地图一起转换而不是同时转发.例如,有1个编译任务尝试生成声明+映射文件(使用JavaScript文件),如下所示不起作用.以下将生成JavaScript +映射文件,但不生成声明文件.
var tsc = require('gulp-typescript');
var sourcemaps = require('gulp-sourcemaps');
var tsProject = tsc.createProject('tsconfig.json');
gulp.task('compile', function () {
var tsProject = tsc.createProject('tsconfig.json');
var tsResult = gulp.src(['src/**/*.ts'])
.pipe(sourcemaps.init())
.pipe(tsProject());
return tsResult.js
.pipe(sourcemaps.write('.'))
.pipe(gulp.dest('./dist/src'));
});
Run Code Online (Sandbox Code Playgroud)
我tsconfig.json
看起来如下.
{
"include": [
"src/**/*"
],
"exclude": [
"node_modules",
"**/*.spec.ts"
],
"compilerOptions": {
"noImplicitAny": true,
"target": "es6",
"module": "commonjs",
"alwaysStrict": true,
"diagnostics": false,
"listEmittedFiles": false,
"listFiles": false,
"pretty": true,
"declaration": true
} …
Run Code Online (Sandbox Code Playgroud) 我正在使用Spring Boot v1.5.1,似乎我对CORS起源的限制不起作用.
我的application.properties文件包含以下行(ref1 ref2).
endpoints.cors.allowed-origins=http://mydomain.io
Run Code Online (Sandbox Code Playgroud)
我的REST控制器如下所示.
@RestController
@CrossOrigin
@RequestMapping("/api/car")
public class CarCtrl {
@Autowired
private CarService carService;
@GetMapping
public Car get() {
return carService.getLatest();
}
}
Run Code Online (Sandbox Code Playgroud)
但是,当我打开浏览器并输入时,http://localhost:8080/api/car
我仍然可以访问REST端点.
我也尝试按如下方式更改我的注释,但这不起作用.
@CrossOrigin("${endpoints.cors.allowed-origins}")
Run Code Online (Sandbox Code Playgroud)
关于我做错了什么的任何想法?
请注意,我没有WebMvcConfigurerAdapter
像这篇文章那样使用.我是否真的需要扩展此类以明确控制原点?我认为@CrossOrigin
除了属性文件设置之外的注释将能够控制允许的原点(而不是必须以编程方式执行).
我正在尝试散列单个std::string
和std::vector<std::string>
值。我正在关注cppreference和boost 中的示例。当代码在 Windows 和 Linux 上编译并运行时,我得到了不同的结果。
的头文件MyHasher.h
如下。
class MyHasher {
private:
MyHasher() = delete;
public:
static std::size_t hash(std::vector<std::string> ids);
static std::size_t hash(std::string s);
static void hashCombine(std::size_t &seed, std::size_t value);
};
Run Code Online (Sandbox Code Playgroud)
CPP文件MyHasher.cpp
如下。
std::size_t MyHasher::hash(std::vector<std::string> ids) {
std::size_t seed = 0;
for (auto id : ids) {
std::size_t h = std::hash<std::string>{}(id);
hashCombine(seed, h);
}
return seed;
}
std::size_t MyHasher::hash(std::string s) {
std::size_t seed = 0;
std::size_t h = std::hash<std::string>{}(s);
hashCombine(seed, …
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用maven v3.0.5和jdk 1.7构建我的项目.我的pom xml的片段如下所示.
<properties>
<sqoop.version>1.4.4</sqoop.version>
</properties>
<dependencies>
<dependency>
<groupId>org.apache.sqoop</groupId>
<artifactId>sqoop</artifactId>
<version>${sqoop.version}</version>
</dependency>
</dependencies>
Run Code Online (Sandbox Code Playgroud)
当我运行"mvn clean package"时,我看到以下错误:
Could not find artifact org.apache.sqoop:sqoop:jar:1.4.4 in central (http://repo.maven.apache.org/maven2)
Run Code Online (Sandbox Code Playgroud)
通常,通常,我去mvnrepository.com,搜索工件,我可以在那里找到任何工件,我总是能够在我的pom.xml中简单地引用它们.根据这个链接http://mvnrepository.com/artifact/org.apache.sqoop/sqoop/1.4.4,这个工件应该存在吗?
我无法真正浏览http://repo.maven.apache.org/maven2.
Browsing for this directory has been disabled.
View this directory's contents on http://search.maven.org instead.
Run Code Online (Sandbox Code Playgroud)
所以我决定将搜索网站用于sqoop.
http://search.maven.org/#search%7Cga%7C1%7Csqoop
Run Code Online (Sandbox Code Playgroud)
在我看来,这个工件存在,但不知何故,我无法访问它.关于我做错什么的任何想法?
我目前有以下POJO.
@Document(indexName="ws",type="vid")
public class Vid {
@Id
private String id;
@Field(type=FieldType.String, index=FieldIndex.not_analyzed)
private List<String> tags;
}
Run Code Online (Sandbox Code Playgroud)
表示此POJO的JSON如下所示.
{
"id" : "someId",
"tags" : [ "one", "two", "three" ]
}
Run Code Online (Sandbox Code Playgroud)
我想要的是定义tags
字段的映射,以便我可以在自动完成搜索框中使用这些值.这得到了Elasticsearch的Completion Suggester的支持.https://www.elastic.co/guide/en/elasticsearch/reference/current/search-suggesters-completion.html上的文档似乎向我建议我必须按如下方式设置映射.
{
"vid": {
"properties": {
"id": {
"type": "string"
},
"tags": {
"type": "completion",
"index_analyzer": "simple",
"search_analyzer": "simple",
"payloads": true
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是,这意味着我必须修改我的POJO和JSON表示.
{
"id": "someId",
"tags": {
"input": [ "one", "two", "three" ]
}
}
Run Code Online (Sandbox Code Playgroud)
我在Completions Suggesters
这里找到了另一个好的页面http://blog.qbox.io/quick-and-dirty-autocomplete-with-elasticsearch-completion-suggest.但是,该页面似乎表明了冗余tags …
java spring elasticsearch spring-data-elasticsearch elasticsearch-mapping
我正在使用 Kafka v0.9.0.1 (Scala v2.11) 和com.101tec:zkclient
v0.7。我正在尝试使用AdminUtils
创建一个卡夫卡主题。我的代码如下。
String zkServers = "node1:2181,node2:2181,node3:2181,node4:2181";
Integer sessionTimeout = (int)TimeUnit.SECONDS.toMillis(10L);
Integer connectionTimeout = (int)TimeUnit.SECONDS.toMillis(8L);
ZkSerializer zkSerializer = ZKStringSerializer$.MODULE$;
Boolean isSecureKafkaCluster = false;
String topic = "test";
Integer partitions = 1;
Integer replication = 3;
ZkClient zkClient = new ZkClient(zkServers, sessionTimeout, connectionTimeout, zkSerializer);
ZkUtils zkUtils = new ZkUtils(zkClient, new ZkConnection(zkServers), isSecureKafkaCluster)
if(!AdminUtils.topicExists(zkUtils, topic)) {
AdminUtils.createTopic(zkUtils, topic, partitions, replications, new Properties());
}
Run Code Online (Sandbox Code Playgroud)
通过以下命令验证该主题实际上已创建。
bin/kafka-topics.sh --describe --zookeeper node1:2181 --topic test
Run Code Online (Sandbox Code Playgroud)
然而,输出并不如预期。
主题:测试 PartitionCount:1 ReplicationFactor:1 配置: …
在一个 Python 项目中,我install_requires
在我setup.py
的如下使用。
install_requires=['numpy', 'scipy', 'matplotlib']
Run Code Online (Sandbox Code Playgroud)
然后我按如下方式创建源代码、二进制文件和轮子。
python setup.py sdist bdist bdist_wheel
Run Code Online (Sandbox Code Playgroud)
当我发布时,我使用twine
.
twine upload --repository dist/testpypi mypackage-0.1.1-py2-none-any.whl
Run Code Online (Sandbox Code Playgroud)
在 Python 2.7 conda 环境中,然后我尝试测试安装。
pip install -i https://test.pypi.org/simple/ mypackage==0.1.1
Run Code Online (Sandbox Code Playgroud)
但是,我收到以下错误消息:
错误:找不到满足 matplotlib 要求的版本(来自 mypackage)(来自版本:无) 错误:找不到 matplotlib 的匹配发行版(来自 mypackage)
当我做 a pip list
and 时conda list
,确实没有matplotlib
列出包。
我究竟做错了什么?我认为(这一点是我的理解崩溃的地方)install_requires
会列出先决条件,并pip install
会选择并自动安装要求?但是,install_requires
如果尚未安装其声明的依赖项,它似乎可以防止安装包。
在某些 Internet 搜索中,他们似乎建议我包含一个requirements.txt
via MANIFEST.in
(例如include requirements.txt
),然后pip install
将自动安装依赖项。但是,在尝试该方法后,我仍然收到相同的错误消息。我尝试requirements.txt
如下。
matplotlib
Run Code Online (Sandbox Code Playgroud)
还有如下。
matplotlib>=2.2.3 …
Run Code Online (Sandbox Code Playgroud) 我有一个如下所示的Pandas
数据框。
年月班 ---- ----- ----- 2015 1 1 2015 1 1 2015 1 2 2015 1 2 ...
我希望能够在一个图上创建此数据的 2 个条形图系列。如果我可以做一个groupby
,count
并最终得到一个,data frame
那么我想我可以做一个简单的dataframe.plot.barh
.
我尝试过的是以下代码。
x = df.groupby(['year', 'month', 'class'])['class'].count()
Run Code Online (Sandbox Code Playgroud)
什么x
最终被一个Series
。那么我执行以下操作以获得DataFrame
.
df = pd.DataFrame(x)
Run Code Online (Sandbox Code Playgroud)
这让我非常接近。数据最终如下所示。
克拉兹 年月克拉兹 2015 1 1 2 2 1 15 2 2 45
但是当我做条形图时df.plot.bar()
,我只看到一个系列。所需的输出只是一个系列,从 2015-01 到 2019-12,1class
每月发生多少次?然后是另一个系列,从 2015-01 到 2019-12,2class
每月发生多少次?
关于如何以这种方式操纵数据的任何想法?
java ×2
python ×2
spring ×2
android ×1
angularjs ×1
apache-kafka ×1
boost ×1
c++ ×1
cordova ×1
cors ×1
dataframe ×1
gulp ×1
hash ×1
hashcode ×1
lucene ×1
matplotlib ×1
maven ×1
pandas ×1
pip ×1
pypi ×1
spring-boot ×1
spring-mvc ×1
sqoop ×1
tsconfig ×1
typescript ×1