大家好!

几个月前,我发布了一个框架叫做GMLiteSearch。
一个全文搜索包括许多特征以及n-gram索引和词干化。

今天,我发布了一个大更新:

新特性

面向切片搜索

  • 多字段筛选 - 根据类别、标签、平台、价格或任何自定义字段筛选结果
  • 聚合计数 - 展示每个面向切片值的结果数量(如电子商务过滤器)
  • 范围面向切片 - 数值和日期范围分桶(价格:0-20,20-50,50+)
  • AND/OR运算符 - 在面向切片组之间灵活地应用筛选逻辑
  • 实时筛选管理 - 动态添加、移除和清除筛选条件

地理空间搜索

  • 实地坐标 - 经度/纬度与哈弗辛距离计算
  • 游戏坐标 - 2D和3D位置搜索用于开放世界游戏
  • 网格优化 - 基于单元格的索引用于大世界(10,000+实体)
  • 地理哈希支持 - 高效的邻近索引与邻居计算
  • 半径和盒子搜索 - 在距离或边界区域内找到位置

学习排名(LTR)

  • 可训练的相关性模型 - 基于用户点击学习的线性模型
  • 7个内置特征 - BM25得分、词频、标题匹配、词覆盖、新鲜度、人气、文档长度
  • 自定义特征 - 注册自己的特征提取函数
  • 点击跟踪 - 记录用户点击和浏览次数用于人气提升
  • 模型持久化 - 保存训练模型到JSON并重新载入

高级摘录

  • 上下文感知摘录 - 在匹配项周围生成摘录
  • 三种策略 - 最佳片段、周围上下文或平衡多句子
  • 术语突出显示 - 可定制的标记符在匹配单词和短语周围
  • 短语检测 - 引用字符串被提升并作为单元高亮显示
  • 多个候选项 - 为UI选择生成多个摘录选项

查询理解

  • 自动完成 - 用户输入时的实时建议,基于流行查询和索引项
  • 拼写检查 - 基于用户查询的Levenshtein距离纠错
  • 查询纠正 - 自动修复整个搜索查询
  • 相关查询 - 基于点击行为和术语相似度的建议
  • 流行查询跟踪 - 记录和检索最频繁的搜索

开发者工具

  • 得分解释 - 文档得分的详细分解
  • 性能分析 - 测量查询执行时间与统计
  • 索引检查 - 健康检查、术语分布和样本文档
  • 基准测试套件 - 自动性能测试与建议
  • 术语调试 - 检查索引条目以特定单词

持久化增强

  • 全索引导出/导入 - 将整个搜索状态保存到JSON
  • LTR模型持久化 - 保存和载入训练的排名模型
  • 快速恢复 - 在游戏启动时加载保存的索引

请给我你的想法!

Github:https://github.com/erkan612/GMLiteSearch