ES 索引读写服务
| Type | Name and description |
|---|---|
EsCoreService |
esCoreService |
| Type | Name and description |
|---|---|
bropen.toolkit.api.Response |
addDocumentFieldItem(String index, Object id, List<String> field, Map item)给集合属性添加元素 |
bropen.toolkit.api.Response |
addDocumentFieldItems(String index, Object id, List<String> field, List<Map> items)给集合属性添加多个元素 |
bropen.toolkit.api.BulkResponse |
addDocumentFieldItems(List<Map> documents)批量给文档数组属性添加元素 |
boolean |
closeIndex(String... indexes)关闭索引 |
Long |
countDocuments(String index)获得文档数量 |
boolean |
createIndexIfNotExists(String index)创建索引 |
bropen.toolkit.api.Response |
deleteDocument(String index, Object id)根据文档ID删除索引库中的文档 |
boolean |
deleteDocumentField(String index, Object id, String field)删除文档属性 |
boolean |
deleteDocumentField(String index, Object id, List<String> field)删除文档属性 |
bropen.toolkit.api.Response |
deleteDocumentFieldItems(String index, Object id, List<String> field, List<String> itemIds)删除集合属性的部分元素 |
bropen.toolkit.api.Response |
deleteDocumentFieldItems(List<Map> list)删除集合属性的部分元素 |
void |
deleteDocuments(String index)删除索引下所有文档 |
bropen.toolkit.api.Response |
deleteDocuments(List<Map> docs)批量删除文档 |
bropen.toolkit.api.Response |
deleteDocuments(String index, List<Object> ids)批量删除文档 |
boolean |
deleteIndex(String index)删除整个索引 |
Map<String, Object> |
getDocument(String index, Object id, String[] includes = null, String[] excludes = null)获得文档 |
static String |
getIndexName(Class clazz)获得文档类的索引名称 |
static String |
getIndexName(String clazzName)获得文档类的索引名称 |
Date |
getLastUpdated(String index, String dataType)获取文档或附件的最近更新时间 |
org.elasticsearch.cluster.metadata.MappingMetaData |
getMapping(String index)获取数据类型映射(mapping) |
Map<String, Object> |
getMappingAsMap(String index)获取数据类型映射(mapping) |
boolean |
hasMapping(String index)判断索引是否包含有 mapping |
bropen.toolkit.api.Response |
indexDocument(Object indexObj, Object id, Map doc, boolean overwrite = false)插入或修改单个文档 |
bropen.toolkit.api.BulkResponse |
indexDocuments(Object index, List<Map> documents, Map options = null)批量索引文档 |
bropen.toolkit.api.BulkResponse |
indexDocuments(List<Map> documents, boolean overwrite = false)批量索引文档 |
boolean |
isDocumentExists(String index, Object id)判断文档是否存在 |
boolean |
isIndexExists(String index, org.elasticsearch.client.RestHighLevelClient client = null)判断索引是否存在 |
static String |
normalizeIndexName(String name) |
static String[] |
normalizeIndexNames(String... names) |
boolean |
openIndex(String... indexes)打开索引 |
boolean |
putMappingIfNotExists(String index, Map mapping)创建数据类型映射(mapping) |
void |
refresh(String... indexes)刷新索引,以便能够马上查到更新的数据 |
void |
saveLastUpdated(String index, String dataType, Date lastUpdated)保存文档或附件的最近更新时间 |
void |
test() |
boolean |
updateDocumentField(String index, Object id, String field, Object value)更新文档属性值 |
boolean |
updateDocumentField(String index, Object id, List<String> field, Object value)更新文档某一个字段的值 |
bropen.toolkit.api.Response |
updateDocumentFields(List<Map> list)批量更新文档属性值 |
| Methods inherited from class | Name |
|---|---|
class Object |
Object#wait(long, int), Object#wait(long), Object#wait(), Object#equals(Object), Object#toString(), Object#hashCode(), Object#getClass(), Object#notify(), Object#notifyAll() |
给集合属性添加元素
示例:ctx.esIndexService.addDocumentFieldItem ('boe_bpm_ct_ctvendormasterdata', '3246608', ["processInstance", "tasks" ], ["class": "aaaa", id: 3373384])
给集合属性添加多个元素
示例:ctx.esIndexService.addDocumentFieldItems ('boe_bpm_ct_ctvendormasterdata', '3246608', ["processInstance", "tasks"], [["class": "bbb", id: 3373384, ...], ["class": "ccccc", id: 3373381, ...]])
批量给文档数组属性添加元素
示例:ctx.esIndexService.addDocumentFieldItems([
[index:'boe_bpm_ct_ctvendormasterdata', id:'3246608', field:["processInstance", "tasks"], items:[["class":"eee", id:3373384], ["class":"ffff", id:3373381]]],
[index:'boe_bpm_ct_ctvendormasterdata', id:'3011343', field:["processInstance", "tasks"], item:["class":"eee", id:3373384]],
[index:'boe_bpm_ct_ctvendormasterdata', id:'30113423', field:["processInstance", "tasks"], item:["class":"eee", id:3373384]] // 此条数据是不存在的
])
关闭索引
indexes - 多个索引名获得文档数量
创建索引
相当于执行 curl -XPOST "http://localhost:9200/index"
index - 索引名根据文档ID删除索引库中的文档
相当于执行命令:curl —XDELETE "http://localhost:9200/index/typename/1"
index - 索引名称id - 文档id删除文档属性
id - 文档IDfield - 属性名称删除文档属性
注:脚本格式 'ctx._source.processInstance.remove("id")'
field - 属性名称路径,如 ["processInstance", "id"]删除集合属性的部分元素
如删除 ID 为 3246608 的文档下、ID 为 3368127 或 3368139 的流程任务:
ctx.esIndexService.deleteDocumentFieldItems ('boe_bpm_ct_ctvendormasterdata', '3246608', ["processInstance", "tasks"], [3368127, 3368139])
id - 文档IDfield - 复杂属性名称路径,如 ["processInstance", "tasks"]itemIds - 元素的 id 列表,不能为空删除集合属性的部分元素
如删除多个文档里的一些流程任务:[[index:'boe_bpm_ct_ctvendormasterdata', id:3246608, field:["processInstance", "tasks"], itemIds:[3368790, 3372543]],
[index:'boe_bpm_ct_ctvendormasterdata', id:3011343, field:["processInstance", "tasks"], itemIds:[3088117, 3088120]],
[index:'boe_bpm_ct_ctvendormasterdata', id:30113423, field:["processInstance", "tasks"], itemIds:[3088117, 3088120]]
]
list - 包含 index、id、field、itemIds 的 Map 列表删除索引下所有文档
index - 索引名称批量删除文档
documents - 包含 index、id 的文档列表批量删除文档
删除整个索引
相当于执行 curl -XDELETE "http://localhost:9200/index"
index - 索引名获得文档
获得文档类的索引名称
计算规则为类全路径转换,'.' 转换成 '_',大写字母 转化成下划线+小写字母, 如 foo.oa.hr.AskForLeave 转成 foo_oa_hr__ask_for_leave。
获得文档类的索引名称
获取文档或附件的最近更新时间
获取数据类型映射(mapping)
index - 索引名获取数据类型映射(mapping)
index - 索引名判断索引是否包含有 mapping
index - 索引名插入或修改单个文档
批量索引文档
index - 索引名。当为字符串时为索引名;当为闭包时,会调用 index(doc) 获取索引名。documents - 文档列表;必须包含 id 字段(文档 ID),或者能够通过调用闭包 idGetter 获得文档 ID。options.idGetter - 生成文档 ID的闭包options.overwrite - 是否强行覆盖文档所有字段,一般用于 init 文档时提升性能批量索引文档
documents - 包含 index、id、parent、value 的文档列表,其中 value 为要索引的内容(必填项)判断文档是否存在
判断索引是否存在
index - 索引名打开索引
indexes - 多个索引名创建数据类型映射(mapping)
index - 索引名type - 文档类型名刷新索引,以便能够马上查到更新的数据
默认 es 每秒钟会自动刷新、或者根据索引的 refresh_interval 配置执行,一般不建议在程序中频繁调用。
保存文档或附件的最近更新时间
index - 索引名dataType - 更新的数据类型,取值为 Constants.LASTUPDATED_ATTACHMENT(附件) or LASTUPDATED_DOCUMENT(文档)lastUpdated - 最近更新时间更新文档属性值
更新文档某一个字段的值
index - 索引名id - 文档idfield - 要更新的字段路径,字符串或字符串列表value - 要更新的字段的值批量更新文档属性值
[[index: 'foo_oa_hr_askforleave', id: '1_e4', field: ['aa', 'bb'], value: '333sb', parentId: "1"],
[index: 'foo_oa_hr_askforleave', id: '1', field: 'definitionName', value: '3333sb', parentId: "1"],
[index: 'foo_oa_hr_askforleave', id: '1', field: 'tianshu', value: 20.7]]
list - 包含 index、id、field、value(只能是数字、字符串、集合,不能是java bean)、parentId 的 Map 列表。