Lucene中,高亮功能和store属性是否存储息息相关,因为需要根据偏移位置到原始文档中找到关键字才能加上高亮的片段。在Elasticsearch,因为_source中已经存储了一份原始文档,可以根据_source中的原始文档实现高亮,在索引中再存储原始文档就多余了,所以Elasticsearch默认是把store属性设置为no。
ES默认检索只会返回ID,如果在禁用source情况下,你需通过根据这个ID去去倒排索引中去取每个Field数据,效率不高。而反之,在启用source的情况下可以根据ID直接检索对应source JSON的字段,不用去倒排索引去按Field取数据。所以建议保留
all字段在全文检索中很有用处,此时你不要制定检索的字段。比如你检索的范围有30多个字段(其中几个权重较高,其他都一样),不用all写查询语句将非常吃力。
原文地址:http://12597095.blog.51cto.com/12587095/1964328