WEB开发网
开发学院软件开发Java 深入浅出 jackrabbit 三 创建 document 阅读

深入浅出 jackrabbit 三 创建 document

 2009-09-17 00:00:00 来源:WEB开发网   
核心提示: 从上面这段代码,我们可以看出一个document有很多个field组成,深入浅出 jackrabbit 三 创建 document(3),其中有一些是必不可少,也有一些是根据node属性决定的,为什么加这个field呢,官方的解释是在某些查询中这个field会加快查询速度,那么我们就来统计一下有

从上面这段代码,我们可以看出一个document有很多个field组成,其中有一些是必不可少,也有一些是根据node属性决定的。那么我们就来统计一下有多少个field被创建了,其实这个也是本文的主要目的,一旦我们清晰的知道有哪里信息被放到field中,那么对于我们反思search 过程有莫大的好处。而且ahuaxuan将这些field分成了两个部分,一个部分属性node的信息,还有一部分属性node的property信息。

一,node

1 fieldname: uuid,值得注意的是该field既存储也索引

doc.add(new Field(FieldNames.UUID, node.getNodeId().getUUID().toString(), Field.Store.YES, Field.Index.NO_NORMS, Field.TermVector.NO));

2 fieldname: PARENT

和uuid类似

3 fieldname: LABEL,该field不存储,但是索引

new Field(FieldNames.LABEL, name, Field.Store.NO, Field.Index.NO_NORMS, Field.TermVector.NO)

二 property

4 fieldname: _:PROPERTIES_SET

这个属性比较奇特,因为这个属性的设置在for循环中,也就是名字为_:PROPERTIES_SET的field的值有多个,它的值是 field的name,不过lucene最后会把同名的field合并。这个属性索引但不存储,而且还有一个条件判断,只有在jackrabbit1.4 以上才会添加这个field,为什么加这个field呢,官方的解释是在某些查询中这个field会加快查询速度。

new Field(FieldNames.PROPERTIES_SET, fieldName, Field.Store.NO, Field.Index.NO_NORMS)

5 fieldname: _:MVP

当一个property对应多个value的时候,那么就会创建这个field:

new Field(FieldNames.MVP, propName, Field.Store.NO, Field.Index.UN_TOKENIZED, Field.TermVector.NO)

上一页  1 2 3 4 5 6 7  下一页

Tags:深入浅出 jackrabbit 创建

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接