自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 山东大学暑期实训一20220620

基础的blender的方法,一些使用工具的方法:首先是镜像修改器 在一侧建模,另一侧也会体现,可以使拓扑结构更加一致细分表面修改器,可以使建出的模型更加平滑在blender中的基本操作:中键:转动;shift+中键:左右平移;ctrl+中键:放大;shift+A:菜单左下角有刚刚已经按下的操作键从渲染和基元开始:数字键盘:1-正视图 3-右视图 7-顶视图在对象模式中 g可以使对象移动 r可以使对象旋转在编辑模式中 可以选中1.点 2.线 3.面长按shift可以选中多个面在Mirror中(镜像状态下)GX

2022-06-20 16:45:12 84 1

原创 lucene代码分析13

2021SC@SDUSC 写入索引域 代码为: DocInverter.flush(Map<DocFieldConsumerPerThread,Collection>, SegmentWriteState) //写入倒排表及词向量信息 –> consumer(TermsHash).flush(childThreadsAndFields, state); //写入标准化因子 –> endConsumer(NormsWriter).flush(endChildThreadsAndFiel

2021-12-27 03:19:47 70

原创 lucene代码分析12

2021SC@SDUSC 按照基本索引链的结构将索引结果写入段 代码为: consumer(DocFieldProcessor).flush(threads, flushState); //回收 fieldHash,以便用于下一轮的索引,为提高效率,索引链中的对象是被复用的。 Map<DocFieldConsumerPerThread, Collection> childThreadsAndFields = new HashMap<DocFieldConsumerPerThread, Co

2021-12-27 03:17:36 63

原创 lucene代码分析11

2021SC@SDUSC 按照基本索引链关闭存储域和词向量信息 代码为: closeDocStore(); flushState.numDocsInStore = 0; 其主要是根据基本索引链结构,关闭存储域和词向量信息:  consumer(DocFieldProcessor).closeDocStore(flushState); consumer(DocInverter).closeDocStore(state); consumer(TermsHash).closeDocStore(state); 

2021-12-27 03:15:05 201

原创 lucene代码分析10

2021SC@SDUSC 得到要写入的段名 代码: SegmentInfo newSegment = null; final int numDocs = docWriter.getNumDocsInRAM();//文档总数 String docStoreSegment = docWriter.getDocStoreSegment();//存储域和词向量所要要写入的段 名,"_0" int docStoreOffset = docWriter.getDocStoreOffset();//存储域和词向量要写入的

2021-12-27 03:12:32 181

原创 lucene代码分析9

2021SC@SDUSC 跳跃表规则 (Skip list) 为了提高查找的性能,Lucene 在很多地方采取的跳跃表的数据结构。 跳跃表(Skip List)是如图的一种数据结构,有以下几个基本特征:  元素是按顺序排列的,在 Lucene 中,或是按字典顺序排列,或是按从小到大顺序排列。 跳跃是有间隔的(Interval),也即每次跳跃的元素数,间隔是事先配置好的,如图跳跃表 的间隔为 3。  跳跃表是由层次的(level),每一层的每隔指定间隔的元素构成上一层,如图跳跃表共有 2 层。 需要注意一

2021-12-27 03:09:34 253

原创 lucene分析8

2021SC@SDUSC 或然跟随规则 Lucene 的索引结构中存在这样的情况,某个值 A 后面可能存在某个值 B,也可能不存在,需 要一个标志来表示后面是否跟随着 B。 一般的情况下,在 A 后面放置一个 Byte,为 0 则后面不存在 B,为 1 则后面存在 B,或者 0 则后面存在 B,1 则后面不存在 B。 但这样要浪费一个 Byte 的空间,其实一个 Bit 就可以了。 在 Lucene 中,采取以下的方式:A 的值左移一位,空出最后一位,作为标志位,来表示后 面是否跟随 B,所以在这种情况下,

2021-12-27 03:07:52 236

原创 lucene代码分析6

2021SC@S lucene索引结构是有层次结构的,具体如下: (1)索引 : 索引全部是是放在同一个文件夹中,这些内容构成了一个完整的lucene索引(2)段(segment):一个索引可以包括很多段,段与段之间是独立的,新添加新文档可以生成新的段,段与段可以合并具有相同前缀文件的属于同一段,如图中共两个段"_0","_1";segments.gen 和 segment_5是段的数据文件,也即它们保存了段的属性信息(3)文档(document):文档是建立索引的基本单位,不同的文档保存在不同的段中,一个

2021-12-11 23:25:36 60

原创 lucene7

2021SC@SDUSC 然而当我们要打开一个索引的时候,我们必须要选择一个来打开。Lucene 采取以下过程: 其 一 , 在 所 有 的 segments_N 中 选 择 N 最 大 的 一 个 。 基 本 逻 辑 参 照 SegmentInfos.getCurrentSegmentGeneration(File[] files) , 其 基 本 思 路 就 是 在 所 有 以 segments 开头,并且不是 segments.gen 的文件中,选择 N 最大的一个作为 genA。 其二,打开 se

2021-12-10 08:31:13 73

原创 lucene分析7

一个索引(Index)可以同时存在多个 segments_N(至于如何存在多个 segments_N,在描述完详细信息之后会举例说明),然而当我们要打开一个索引的时候,我们必须要选择一个来打开。Lucene 采取以下过程:  其 一 , 在 所 有 的 segments_N 中 选 择 N 最 大 的 一 个 。 基 本 逻 辑 参 照 SegmentInfos.getCurrentSegmentGeneration(File[] files) , 其 基 本 思 路 就 是 在 所 有 以 segmen

2021-12-10 02:11:11 170

原创 lucene分析6

2021SC@SDUSC lucene索引结构是有层次结构的,具体如下: (1)索引 : 索引全部是是放在同一个文件夹中,这些内容构成了一个完整的lucene索引 (2)段(segment):一个索引可以包括很多段,段与段之间是独立的,新添加新文档可以生成新的段,段与段可以合并 具有相同前缀文件的属于同一段,如图中共两个段"_0","_1"; segments.gen 和 segment_5是段的数据文件,也即它们保存了段的属性信息 (3)文档(document):文档是建立索引的基本单位,不同的文档保存

2021-12-10 02:00:21 73

原创 lucene代码分析5

2021SC@SDUSC lucene调用链自上而下,大概可以分三层, 前四个步骤是逻辑调用层,IndexWriter类将整个Document作为参数调用addDocument方法, IndexWriter下的DocWriter再调用对应的updateDocument去更新文档,最后从线程池种拉出一个DocWriterPerThread对象来执行最终的updateDocument逻辑,再这一层实际上并没有什么实质性地发生 中间一层是索引链的处理逻辑,DefaultIndexingChain是一个非常核心的

2021-11-29 03:53:25 130

原创 lucene代码分析4

Lucene作为一个检索引擎主要保存七种类型的数据: PostingList,TermDict,StoredField ,DocValue, TermVector, Norms,PointValue, 前四种是所有检索引擎都会保存的数据,后三种是Lucene特有的数据,实际上,StoredField就是我们所说的正排数据,它是一种行式存储,类似于mysql中的行数据,StoredField承担存储最原始的数据的角色重要性不言而喻,之所以先讲这块也是因为它最简单,但是在讲StoredField的时候会包含很多

2021-11-29 03:51:20 162

原创 lucene代码分析

2021SC@SDUSC lucene读取过程 Analyzer analyzer = new StandardAnalyzer(); // Store the index in memory: Directory directory = new RAMDirectory(); // To store an index on disk, use this instead: //Directory directory = FSDirectory.open("/tmp/test

2021-11-09 14:42:49 104

原创 lucene分析(2)

2021SC@SDUSC 对于不需要在搜索反向索引时用到,但在搜索结果处理时需要的位置、偏移量、附加数据(payLoad)的字段,我们可以单独为该字段存储(文档id词项向量)的正向索引。 packagecom.study.lucene.indexdetail; importjava.io.File; importjava.io.IOException; importorg.apache.lucene.analysis.Analyzer; importorg.apache.lu...

2021-10-17 21:51:45 90

原创 lucene中document的相关分析

2021SC@SDUSC document文档是要索引的数据记录,文档在lucene中的表示,是索引,搜索的基本单元。一个document由多个字段Field构成,就好比数据库的字段与记录。 而Field字段是由三个部分组成的,分别是字段名,字段值和字段类型构成,字段值可以是文本,二进制值或者是数值 我们收集数据创建document对象来为其创建索引,数据的属性中只有被搜索和被展示的字段需要存储在document中,而且只有被搜索的字段才被索引,需要被展示的字段才被存储。字段会按照查询方式..

2021-10-10 21:05:41 344

原创 lucene分析

2021SC@SDUSC 任务描述:本人主要负责分析document和util俩个部分的代码,第一周我们首先配置环境让代码跑起来 lucene功能描述:Lucene是apache软件基金会4jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,但它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎(英文与德文两种西方语言)。Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或..

2021-09-29 19:03:47 61

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除