code: func (f *Field) openViews() error {
  	file, err := os.Open(filepath.Join(f.path, "views"))
  	if os.IsNotExist(err) {
  		return nil
  	} else if err != nil {
  		return errors.Wrap(err, "opening view directory")
  	}
  	defer file.Close()
  
  	fis, err := file.Readdir(0)
  	if err != nil {
  		return errors.Wrap(err, "reading directory")
  	}
  
  	for _, fi := range fis {
  		if !fi.IsDir() {
  			continue
  		}
  
  		name := filepath.Base(fi.Name())
  		f.logger.Debugf("open index/field/view: %s/%s/%s", f.index, f.name, fi.Name())
  		view := f.newView(f.viewPath(name), name)
  		if err := view.open(); err != nil {
  			return fmt.Errorf("opening view: view=%s, err=%s", view.name, err)
  		}
  		view.rowAttrStore = f.rowAttrStore
  		f.logger.Debugf("add index/field/view to field.viewMap: %s/%s/%s", f.index, f.name, view.name)
  		f.viewMap[view.name] = view
  	}
  
  	return nil
  }
docs: // openViews opens and initializes the views inside the field.