Field.Store ,ANALYZED备忘

Field.Store.YES, Field.Index.NOT_ANALYZED
为了体会Field.Store.YES与Field.Store.NO的区别:可以看到只要ANALYZED就会建索引,建了索引就能查。Store的目的是通过全文检查就能返回对应的内容。这就是Store在索引中的目的。而不必在通过id去DB中加载。
另外,注意到lucene3以上的版本中. ANALYZED就表示分词建索引。

1.代码中:
doc.add(new Field(DaoDaoLocation.LocationIndexField.CADDRESS.getIndexName() , sTmp, Field.Store.NO, Field.Index.ANALYZED));

2.luke分析:
在Term中指定caddress字段查hongxu可以查到结果



3.数据库验证

 

1236878    Bistro Zhou    10022    0                    No.1151 Hongxu Road, Changning District            021-6219-8800(6332)                 0            aishiguro    2011-05-28        1:9999:World|2:10000:Asia|294211:10001:China|303764:10009:Shanghai Region|308272:10004:Shanghai    4    0    0    2009-01-14

发现该id对应的Street1属性:No.1151 Hongxu Road, Changning District, Stree1就是Obj里面的caddress属性,这说明了不是只有Field.Store.YES的字段才会被建索引。Store.YES只是为了通过全文检索就能返回。而不必通过DB或其它介质二次加载。


posted @ 2011-11-04 16:47  highriver  阅读(765)  评论(0编辑  收藏  举报