Timelinize配置详解:自定义数据存储路径与索引规则

Timelinize配置详解:自定义数据存储路径与索引规则

【免费下载链接】timelinize Store your data from all your accounts and devices in a single cohesive timeline on your own computer 【免费下载链接】timelinize 项目地址: https://gitcode.com/GitHub_Trending/ti/timelinize

为什么需要自定义配置?

你是否遇到过数据存储路径混乱、索引效率低下的问题?Timelinize作为一款本地化时间线数据管理工具(允许用户将所有账户和设备的数据存储在自己的计算机上,形成一个统一的时间线),提供了灵活的配置选项来解决这些痛点。通过本文,你将学会如何自定义数据存储路径和优化索引规则,让数据管理更高效、更符合个人习惯。

数据存储路径配置

默认存储路径

Timelinize的默认配置文件路径和数据存储路径如下:

  • 默认配置文件路径:tlzapp/config.go

    func DefaultConfigFilePath() string {
        cfgDir, err := os.UserConfigDir()
        if err == nil {
            return filepath.Join(cfgDir, "timelinize", "config.json")
        }
        cfgDir, err = os.UserHomeDir()
        if err == nil {
            return filepath.Join(cfgDir, ".timelinize", "config.json")
        }
        return filepath.Join(".timelinize", "config.json")
    }
    
  • 默认缓存目录:tlzapp/config.go

    func DefaultCacheDir() string {
        cacheDir, err := os.UserCacheDir()
        if err == nil {
            return filepath.Join(cacheDir, "timelinize")
        }
        homeDir, err := os.UserHomeDir()
        if err == nil {
            return filepath.Join(homeDir, ".timelinize", "cache")
        }
        return filepath.Join(".timelinize", "cache")
    }
    

自定义存储路径

要修改数据存储路径,需要修改配置文件中的Repositories字段。这个字段定义了程序启动时要打开的时间线存储库的文件夹路径:

tlzapp/config.go

// The folder paths of timeline repositories to open at
// program start.
Repositories []string `json:"repositories,omitempty"`

操作步骤

  1. 打开配置文件(默认路径见上文)
  2. 添加或修改repositories字段,例如:
    "repositories": [
        "/path/to/your/custom/repo1",
        "/path/to/your/custom/repo2"
    ]
    
  3. 保存配置文件并重启Timelinize

索引规则配置

数据库架构

Timelinize使用SQLite数据库存储和索引数据,数据库架构定义在以下文件中:

数据库连接参数在timeline/db.go中定义:

func openDB(ctx context.Context, repoDir string) (*sql.DB, error) {
    var db *sql.DB
    var err error
    defer func() {
        if err != nil && db != nil {
            db.Close()
        }
    }()

    dbPath := filepath.Join(repoDir, DBFilename)

    db, err = sql.Open("sqlite3", dbPath+"?_foreign_keys=on&_journal_mode=WAL")
    if err != nil {
        return nil, fmt.Errorf("opening database: %w", err)
    }
    // ...
}

自定义索引规则

虽然Timelinize的核心索引逻辑是内置的,但你可以通过以下方式影响索引行为:

  1. 数据源选择:Timelinize支持多种数据源,你可以选择需要索引的数据类型。数据源定义在datasources/目录下,例如:

  2. 数据库连接参数优化:你可以修改数据库连接参数来优化索引性能。例如,调整SQLite的缓存大小或页面大小:

    db, err = sql.Open("sqlite3", dbPath+"?_foreign_keys=on&_journal_mode=WAL&cache_size=-20000&page_size=4096")
    

    其中cache_size=-20000表示使用20,000页的缓存(负号表示KB),page_size=4096设置页面大小为4KB。

  3. 实体类型和分类:Timelinize预定义了多种实体类型和分类,你可以通过修改相关代码来自定义:

    entityTypes := []string{
        "person",
        "creature", // animals, insects, fish, pets... etc.
        "place",    // landmarks... etc.
        "company",
        "organization",
        "office", // 职位、高管等... 实体类型随时间变化 TODO: 重命名为"职位"?
        "政府机构",
    }
    

高级配置

网站目录自定义

如果你需要开发或自定义Timelinize的前端界面,可以指定自定义的网站目录:

tlzapp/config.go

// Serves the website from this folder on disk instead of
// the embedded file system. This can make local, rapid
// development easier so you don't have to recompile for
// every website change. If empty, website assets that are
// compiled into the binary will be used by default.
WebsiteDir string `json:"website_dir,omitempty"`

配置方法:在配置文件中添加website_dir字段,指向你的前端代码目录:

"website_dir": "/path/to/your/custom/frontend"

地图API密钥配置

Timelinize支持地图功能,需要配置Mapbox API密钥:

tlzapp/config.go

// The API token to use for Mapbox GL JS and tiles. The
// user should set this to their own to guarantee
// availability of the maps.
MapboxAPIKey string `json:"mapbox_api_key,omitempty"`

配置方法:在配置文件中添加mapbox_api_key字段:

"mapbox_api_key": "your_mapbox_api_key_here"

配置文件示例

以下是一个完整的配置文件示例,包含了上述所有自定义选项:

{
    "listen": ":8080",
    "website_dir": "/path/to/custom/frontend",
    "mapbox_api_key": "your_mapbox_api_key",
    "repositories": [
        "/path/to/repo1",
        "/path/to/repo2"
    ],
    "obfuscation": {
        "enabled": false,
        "seed": "random_seed_here"
    }
}

总结

通过自定义Timelinize的配置,你可以:

  • 灵活设置数据存储路径,更好地管理磁盘空间
  • 优化索引规则,提高数据查询效率
  • 定制前端界面,打造个性化使用体验
  • 配置地图服务,增强地理位置数据展示

所有配置都围绕tlzapp/config.go文件展开,核心数据处理逻辑在timeline/目录中实现。如果需要更深入的定制,可以查阅相关源代码文件。

参考资料

【免费下载链接】timelinize Store your data from all your accounts and devices in a single cohesive timeline on your own computer 【免费下载链接】timelinize 项目地址: https://gitcode.com/GitHub_Trending/ti/timelinize

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值