- 博客(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
92
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
91
原创 lucene代码分析12
2021SC@SDUSC按照基本索引链的结构将索引结果写入段代码为:consumer(DocFieldProcessor).flush(threads, flushState);//回收 fieldHash,以便用于下一轮的索引,为提高效率,索引链中的对象是被复用的。Map<DocFieldConsumerPerThread, Collection>childThreadsAndFields = new HashMap<DocFieldConsumerPerThread,Co
2021-12-27 03:17:36
85
原创 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
220
原创 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
190
原创 lucene代码分析9
2021SC@SDUSC跳跃表规则(Skip list)为了提高查找的性能,Lucene 在很多地方采取的跳跃表的数据结构。跳跃表(Skip List)是如图的一种数据结构,有以下几个基本特征: 元素是按顺序排列的,在 Lucene 中,或是按字典顺序排列,或是按从小到大顺序排列。跳跃是有间隔的(Interval),也即每次跳跃的元素数,间隔是事先配置好的,如图跳跃表的间隔为 3。 跳跃表是由层次的(level),每一层的每隔指定间隔的元素构成上一层,如图跳跃表共有2 层。需要注意一
2021-12-27 03:09:34
282
原创 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
255
原创 lucene代码分析6
2021SC@Slucene索引结构是有层次结构的,具体如下:(1)索引 : 索引全部是是放在同一个文件夹中,这些内容构成了一个完整的lucene索引(2)段(segment):一个索引可以包括很多段,段与段之间是独立的,新添加新文档可以生成新的段,段与段可以合并具有相同前缀文件的属于同一段,如图中共两个段"_0","_1";segments.gen 和 segment_5是段的数据文件,也即它们保存了段的属性信息(3)文档(document):文档是建立索引的基本单位,不同的文档保存在不同的段中,一个
2021-12-11 23:25:36
70
原创 lucene7
2021SC@SDUSC然而当我们要打开一个索引的时候,我们必须要选择一个来打开。Lucene 采取以下过程:其 一 , 在 所 有 的 segments_N 中 选 择 N 最 大 的 一 个 。 基 本 逻 辑 参 照SegmentInfos.getCurrentSegmentGeneration(File[] files) , 其 基 本 思 路 就 是 在 所 有 以segments 开头,并且不是 segments.gen 的文件中,选择 N 最大的一个作为 genA。其二,打开 se
2021-12-10 08:31:13
83
原创 lucene分析7
一个索引(Index)可以同时存在多个 segments_N(至于如何存在多个 segments_N,在描述完详细信息之后会举例说明),然而当我们要打开一个索引的时候,我们必须要选择一个来打开。Lucene 采取以下过程: 其 一 , 在 所 有 的 segments_N 中 选 择 N 最 大 的 一 个 。 基 本 逻 辑 参 照SegmentInfos.getCurrentSegmentGeneration(File[] files) , 其 基 本 思 路 就 是 在 所 有 以segmen
2021-12-10 02:11:11
181
原创 lucene分析6
2021SC@SDUSClucene索引结构是有层次结构的,具体如下:(1)索引 : 索引全部是是放在同一个文件夹中,这些内容构成了一个完整的lucene索引(2)段(segment):一个索引可以包括很多段,段与段之间是独立的,新添加新文档可以生成新的段,段与段可以合并具有相同前缀文件的属于同一段,如图中共两个段"_0","_1";segments.gen 和 segment_5是段的数据文件,也即它们保存了段的属性信息(3)文档(document):文档是建立索引的基本单位,不同的文档保存
2021-12-10 02:00:21
87
原创 lucene代码分析5
2021SC@SDUSClucene调用链自上而下,大概可以分三层, 前四个步骤是逻辑调用层,IndexWriter类将整个Document作为参数调用addDocument方法, IndexWriter下的DocWriter再调用对应的updateDocument去更新文档,最后从线程池种拉出一个DocWriterPerThread对象来执行最终的updateDocument逻辑,再这一层实际上并没有什么实质性地发生中间一层是索引链的处理逻辑,DefaultIndexingChain是一个非常核心的
2021-11-29 03:53:25
140
原创 lucene代码分析4
Lucene作为一个检索引擎主要保存七种类型的数据: PostingList,TermDict,StoredField ,DocValue, TermVector, Norms,PointValue, 前四种是所有检索引擎都会保存的数据,后三种是Lucene特有的数据,实际上,StoredField就是我们所说的正排数据,它是一种行式存储,类似于mysql中的行数据,StoredField承担存储最原始的数据的角色重要性不言而喻,之所以先讲这块也是因为它最简单,但是在讲StoredField的时候会包含很多
2021-11-29 03:51:20
167
原创 lucene代码分析
2021SC@SDUSClucene读取过程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
116
原创 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
96
原创 lucene中document的相关分析
2021SC@SDUSCdocument文档是要索引的数据记录,文档在lucene中的表示,是索引,搜索的基本单元。一个document由多个字段Field构成,就好比数据库的字段与记录。而Field字段是由三个部分组成的,分别是字段名,字段值和字段类型构成,字段值可以是文本,二进制值或者是数值我们收集数据创建document对象来为其创建索引,数据的属性中只有被搜索和被展示的字段需要存储在document中,而且只有被搜索的字段才被索引,需要被展示的字段才被存储。字段会按照查询方式..
2021-10-10 21:05:41
366
原创 lucene分析
2021SC@SDUSC任务描述:本人主要负责分析document和util俩个部分的代码,第一周我们首先配置环境让代码跑起来lucene功能描述:Lucene是apache软件基金会4jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,但它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎(英文与德文两种西方语言)。Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或..
2021-09-29 19:03:47
66
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人