我在 ElasticSearch 域中插入了以下文档。
{"depID:": "5656", "employeeID": "7777", "jobID": "2345"}
{"depID:": "6767", "employeeID": "9999", "jobID": "2345"}
{"depID:": "7676", "employeeID": "8888", "jobID": "2345"}
当我对 depID 执行 SearchRequest 时,我得到 0 次点击。但是当我在employeeIDs 或jobIDs 上执行它时,我得到了正确的响应。我不确定我在这里做错了什么。下面是我如何创建这些文档。
public IndexResponse indexDocumentRequest(final String indexName, final String jsonDocument) throws IOException {
IndexRequest indexRequest = new IndexRequest(indexName);
indexRequest.source(jsonDocument, XContentType.JSON);
return restHighLevelClient.index(indexRequest, RequestOptions.DEFAULT);
}
IndexResponse indexResponse =
esDao.indexDocumentRequest("employees", "{\"depID:\": \"5656\", \"employeeID\": \"7777\", \"jobID\": \"2345\"}");
下面是我运行 SearchRequests 的方法。
public SearchResponse searchDocumentRequest(final String indexName, final String jsonDocument) throws IOException {
QueryBuilder queryBuilder = QueryBuilders.wrapperQuery(jsonDocument);
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
searchSourceBuilder.query(queryBuilder);
SearchRequest searchRequest = new SearchRequest();
searchRequest.indices(indexName);
searchRequest.source(searchSourceBuilder);
return restHighLevelClient.search(searchRequest, RequestOptions.DEFAULT);
}
下面是我如何调用上述 Search 方法。
SearchResponse searchResponse = esDao.searchDocumentRequest("employees",
"{\"bool\":{\"must\":[{\"match\":{\"depID\":\"5656\"}}]}}");
SearchResponse searchResponse = esDao.searchDocumentRequest("employees",
"{\"bool\":{\"must\":[{\"match\":{\"depID\":\"6767\"}}]}}");
上述调用均未返回任何命中!但是下面对其他字段的调用会返回正确的命中。
SearchResponse searchResponse = esDao.searchDocumentRequest("employees",
"{\"bool\":{\"must\":[{\"match\":{\"employeeID\":\"7777\"}}]}}");
SearchResponse searchResponse = esDao.searchDocumentRequest("employees",
"{\"bool\":{\"must\":[{\"match\":{\"jobID\":\"2345\"}}]}}");
我在这里做错了什么?为什么 depID 搜索不会返回任何命中?任何建议将不胜感激
更新:我对文档的索引映射似乎如下。
{
"properties": {
"jobID": {
"type": "text",
"fields": {
"keyword": {
"ignore_above": 256,
"type": "keyword"
}
}
},
"depID:": {
"type": "text",
"fields": {
"keyword": {
"ignore_above": 256,
"type": "keyword"
}
}
},
"employeeID": {
"type": "text",
"fields": {
"keyword": {
"ignore_above": 256,
"type": "keyword"
}
}
}
}
}