1. 概述
正常数据结构一个是需要考虑中文分词,二个是考虑是否索引,是否分词,是否存储等等。
下面的示范用到了三种类型的数据:
1). 字段需要分词、需要索引、需要存储,如:网页中的标题、内容等字段。
2). 字段需要索引,但不需要分词,需要存储,如:网页的发布时间等内容。
3). 字段不需要索引,不需要分词,但需要存储,如:引用的图片位置。
不存在不需要索引、也不需要分词,也不需要存储的字段,因为这样的字段在Lucene中无意义。
2. 示范配置
objectId text
注意:schema.xml文件中的主键,最好是string类型的,而不是int类型的(哪怕数据库中是int类型);否则在启动tomcat时有可能报错(Error initializing QueryElevationComponent?)。
3. 备注
termVectors="true" termPositions="true" termOffsets="true"
这几项参数是在项目中使用到FastVectorHighlighter时需要配置的,如果没有使用FastVectorHighlighter的话,可以忽略这些参数。
multiValued="true"
此项参数为是否允许多值,主键不允许多值。但图片等允许多值,另拷贝字段(如:text字段)默认也是多值。
type="string"
string类型的字段默认不分词,当作整体来看。
type="text_mm4j"
text_mm4j类型的即是中文分词组件,参考types下面关于name="text_mm4j"的具体配置。本项目中标题、内容等字段需要使用此类型。