Es在保存数据的时候时分区/分片存储的,每一个分区/分片都对应着一个Lucene实例
Refresh到内存Segment:
Flush到磁盘:
Translog 溢写日志:
在大批量数据写入ES的时候,应该先关闭自动refresh,数据写入之后再打开自动refresh
ES准实时索引完整流程
buffer(缓冲区)->segment(数据段)->refresh(刷新 内存buffer->内存sgment)->flush(刷新 内存segment->磁盘segment ->translog(溢写日志))
创建一个实体类,用来表示一条招聘信息
class JobDetail():
def __init__(self, id, area, cmp, edu, exp, title, job_type, pv, jd, salary):
self.id = id
self.area = area
self.cmp = cmp
self.edu = edu
self.exp = exp
self.title = title
self.job_type = job_type
self.pv = pv
self.jd = jd
self.salary = salary
# 返回为字典数据, 用于后续方便使用, 此处也可以尝试使用JSON方式转换
def get_document(self):
return {
'id': self.id, 'area': self.area, 'cmp': self.cmp, 'edu': self.edu, 'exp': self.exp,
'title': self