XERJ 搜索 Jupyter Notebook:按 Markdown 标题分区索引 .ipynb 与同目录 .py 文件
【免费下载链接】xerjXERJ is the new way for AI to search data. Its autoindex capability activates agents to know your data without the token waste of grep and sed. One command indexes code, docs, logs and PDFs for search, RAG, security audits and agent memory, using 40x fewer tokens than grep. Elasticsearch compatible, so existing clients just work.项目地址https://gitcode.com/GitHub_Trending/xe/xerj点击查看免费下载导读本文介绍 XERJ 如何将 Jupyter Notebook.ipynb与它旁边的.py脚本放进同一个索引让你用一句match查询就能找回几个月前写在 Notebook 里的函数——命中结果不仅告诉你在哪个文件还直接给出 Markdown 标题路径、起始单元格编号cell和可跳转的定位符ax_locator。读完本文你将掌握一条命令完成 Notebook 文件夹的索引、如何查询只有执行过的单元格才出现的输出文本、Notebook 各字段的类型与可过滤方式以及 XERJ 在源码层面如何识别与切分 Notebook。本文内容以 search-jupyter-notebook-cells.mdXERJ 官方捕获运行记录RUN-C为核心骨架并结合仓库源码 extract/ipynb.rs 与 sniff.rs 展开实现细节。一次运行2 个 Notebook 和 1 个 .py 进入同一索引XERJ 的xerj autoindex folder会对文件夹做内容识别 提取 索引。捕获运行中一个包含 2 个 Notebook 和 1 个.py文件的目录被读入同一个数据集jp-docs共产生11 个文档、0 个垃圾文件。xerj autoindex ./notebooks --url http://127.0.0.1:9200 --prefix jp --progress plain命令行参数说明来源cli.rs参数作用默认值--url UES 兼容端点http://localhost:9200--prefix P索引前缀搜索时用jp-*通配ax--progress MODEstderr 上的进度形态auto/plain/json/noneauto--progress-interval SECS进度节拍秒合法范围 1..3600终端下 1否则 5--workers N内容哈希/嗅探与索引两个阶段的并发数每核一个值得注意的约定stdout 是结果stderr 是进度管道场景下两者应分开处理--progress plain强制以每行一条的形态输出进度适合 CI、管道和 Agent 消费。捕获运行中的 2 个 Notebook 来自一个 fixture 生成器按nbformat 4.5写入包含 Markdown 单元格、代码单元格、一个打印输出、一个图片输出和一个错误整个索引过程没有启动任何 Notebook 服务XERJ从不执行 Notebook。提取单元是Markdown 标题分区与每个 cell 一条记录的朴素做法不同XERJ 的 Notebook 提取器以 Markdown 标题为界切分分区每个分区从某个 Markdown 标题开始包含直到下一个标题之前的所有单元格。这样一次命中就能同时返回文件名、分区标题、标题路径以及分区起始的单元格编号。field示例值类型ax_pathokapi-retrieval-sweep.ipynbkeywordax_locatorc3-s0keywordheadingRun the sweepkeywordheading_pathOkapi retrieval sweep Run the sweeptextcell3longlanguagepythonkeywordtitle取自 Notebook 的第一个一级标题无一级标题时取任意级首个标题再退回到文件名 stemlanguage取自内核kernelspec.language缺省时回退到language_info.name再回退到根据内核名推断的语言因此 R、Julia 的 Notebook 会如实标注语言。源码层面分区逻辑在 extract/ipynb.rs 的open_heading中实现遇到 ATX 标题#到######CommonMark 风格最多 3 个空格缩进、#后必须有空格或行尾时把当前分区收尾压入sections再按标题层级维护一个stack用于生成heading_path。三个细节值得注意单元格中间出现标题同样切分第二个 Notebook 以# Evaluation notes开头同一个单元格里还有## Findings于是Findings获得定位符c1.2-s0。定位符必须全局唯一定位符同时作为记录 ID 的键。当同一单元格里开出多个分区时第 2 个及以后的分区使用c{cell}.{k}形式如c3.2-s0避免记录互相覆盖——这正是 ipynb.rs 中prev_cell/k计数所保证的。标题清洗clean_heading会去掉*强调符、代码标记和简单 HTML 标签Notebook 里常见的a id…/a锚点折叠空白但保留_因为 Notebook 中_更常是标识符的一部分如create_app而非斜体标记。c3-s0这类定位符的格式是c{cell}-s{section}c3表示分区从第 3 个单元格1 基开始s0表示该分区的第 0 个切片超长分区按split_sections拆成多片第 2 片起附带section数字字段。Markdown、代码与输出共处一个 body每个分区的body按阅读顺序拼接Markdown 原文保留代码放进以内核语言为语言的代码围栏如python文本输出则以无标签围栏跟在所属单元格之后。捕获运行中Run the sweep分区包含 2 个单元格其 body 里出现了okapi accuracy 0.9137 corpus labelled-20源码 ipynb.rs 中的output_text规定了哪些输出会进入 bodystreamv4/ v3 的stream、pyout、display_data中的text字段先strip_ansi剥掉 ANSI 转义序列再用collapse_redraws折叠进度条重绘\r分隔的同一行只保留最后一次重绘内容text/plain结果execute_result/display_data的data.text/plainerror/pyerr以ename: evalue形式记录如KeyError: missingtraceback 不索引图片输出整体跳过包括图片旁边的text/plain占位文本如Figure size 640x480 with 1 Axes纯 HTML 输出不索引如text/html表格。捕获运行在同一个索引上执行了 4 个查询结果如下queryhits命中的内容matchonbodyforokapi_transform43 个 Notebook 分区 okapi_utils.py的代码文档match_phraseonbodyforokapi experiment notes2两个 Notebook 的开篇分区match_phraseonbodyforokapi accuracy 0.91371Run the sweepcell 3仅来自已执行单元格的存储输出match_phraseonbodyforKeyError q-4041Okapi retrieval sweep Plot the curve A failing runcell 7第 3 个查询最有价值打印的准确率数字只存在于已执行单元格的存储输出里而命中结果直接给出了产生它的分区和单元格curl -s -XPOST http://127.0.0.1:9200/jp-*/_search \ -H content-type: application/json \ -d {query:{match_phrase:{body:okapi accuracy 0.9137}},size:5,_source:[ax_path,ax_locator,heading_path,cell],track_total_hits:true}查询okapi_transform同时命中 Notebook 分区与同目录okapi_utils.py的代码文档说明一个autoindex命令指向同时含 Notebook 与脚本的目录即可让两者进入同一数据集——这正是把 Notebook 与脚本当作一个项目来搜的用法。识别靠内容而非扩展名XERJ 对 Notebook 的判定从不信任文件扩展名。在 sniff.rs 的嗅探流水线中looks_like_notebook在 JSON 分类器之前被调用命中即归入Family::Ipynb。其判定规则源码 ipynb.rsJupyter 与 VS Code 写出的 Notebook 键是排序的因此cells通常是第一个键且首个单元格内会出现cell_type——此时要求前缀中出现cell_typeColab 写出的 Notebook 以nbformat开头nbformat 3 则以metadata开头——此时要求同时存在nbformat版本号与cells或worksheets列表普通 JSON 即便带cells键如电子表格导出、游戏关卡数据没有cell_type不会被误判。仓库测试notebooks_are_recognized_by_content_and_plain_json_is_not验证了这一点名为analysis.json的 Notebook 被嗅探为Ipynb而带cells键的普通 JSONgrid.json仍归为Json。扩展名无关的识别意味着改名、放在任何目录、甚至.json后缀的 Notebook 都能被正确索引。什么内容不会被索引捕获运行明确验证了以下几类内容不进索引图片输出及其旁边的text/plain占位文本如Figure size 640x480 with 1 AxesHTML-only 输出查询图片占位文本、图片数据、HTML 表格均返回 0 命中。输出文本还有三道防线常量定义见 ipynb.rs每条输出最多 40 行MAX_OUTPUT_LINES 40超出部分以… (N more lines)截断——长训练日志不会喧宾夺主占据整个分区同时受4 KiB 字节上限MAX_OUTPUT_BYTES约束行数与字节数两者先到先截终端颜色被剥除、进度条只保留最终状态\r重绘折叠。此外整个 Notebook 的提取文本还有 64 MiB 总上限MAX_BODY_BYTES与 DOCX/PPTX/EPUB 的整文件解析上限一致每个文件最多产出 4096 条记录MAX_RECORDS_PER_FILE。测试outputs_lose_ansi_and_progress_redraws_and_are_capped直接断言了这些行为200 行 epoch 日志只保留前 40 行并追加… (160 more lines)ANSI 序列消失进度条只剩100%|##########|。对内核语言与 nbformat 版本的兼容内核语言优先kernelspec.language其次language_info.name。对于 Colab 这类只写{name: python3}的 Notebooklanguage_of_kernel会根据内核名推断python*→pythonir→Rjulia*→juliadeno→typescript。代码围栏使用该语言标注例如 R Notebook 的代码写进R围栏。nbformat 3worksheets结构、input字段、独立的heading单元格、pyout/pyerr输出都能读取测试nbformat_3_notebooks_are_read_too覆盖。v3 的heading单元格按level字段夹在 1..6切分并写回# {text}原文。标题只在 Markdown 中识别代码围栏里的# 注释、无空格的#hashtag、4 空格缩进的# code都不会被当作标题测试a_hash_in_code_fences_or_without_a_space_is_not_a_heading。遇到~~~围栏同样跳过。纯标题分区折叠# Title后紧跟## Intro这类正文只有标题行的分区其标题行会被并入下一个分区保留各自的标题与起始单元格测试colab_shapes_title_language_and_heading_only_sections验证这正好处理 Colab 教程常见的##### 版权横幅# 标题形态。本捕获未覆盖的边界仅索引了 2 个 Notebook本次运行演示的是提取单元与定位符而非 Notebook 规模下的吞吐行为XERJ不运行、不渲染、不转换Notebook也不通过网络抓取任何内容R Markdown.Rmd、Quarto.qmd以及 Jupytext / marimo 的.pyNotebook 不会按 Notebook 读取本次为单节点运行无副本、无故障转移XERJ 默认嵌入器是词法特征哈希lexical feature hashing384 维混合词法向量查询与改写若无共享词则不会匹配神经嵌入需通过--embed-mode neural显式启用详见 local-embeddings-without-openai-api 中关于嵌入后端的选择说明。以上数字来自RUN-C捕获于 2026-10-05基于main分支 v1.0.0-rc.82 之后的一次构建commit06185966Notebook 提取能力不在 v1.0.0-rc.82 发布版本身中。该二进制为quickprofile 构建因此本次运行不发布任何墙钟性能数字。相关阅读search-json-and-jsonl-logs同属文件与格式主题处理 JSON/JSONL 日志的索引与查询local-embeddings-without-openai-api本地嵌入方案与--embed-mode的选择give-chatgpt-claude-local-file-access将本地索引暴露给 AI 助手的方式。如果你需要复现先启动一个本地 XERJ 节点然后按本文开头命令索引你的 Notebook 目录即可用curl或任意 ES 兼容客户端查询jp-*索引。赞分享【免费下载链接】xerjXERJ is the new way for AI to search data. Its autoindex capability activates agents to know your data without the token waste of grep and sed. One command indexes code, docs, logs and PDFs for search, RAG, security audits and agent memory, using 40x fewer tokens than grep. Elasticsearch compatible, so existing clients just work.项目地址https://gitcode.com/GitHub_Trending/xe/xerj点击查看免费下载相关推荐CMake 环境变量 CMAKE_GENERATOR_TOOLSET 完全指南跨生成器的原生工具集指定机制CMake 环境变量 CMAKE_GENERATOR_TOOLSET 完全指南跨生成器的原生工具集指定机制 本文以 CMake 官方文档 Help/envvaSukiUI Button 控件完整指南样式体系、主题色变体与 Busy/Loading 加载状态实战SukiUI Button 控件完整指南样式体系、主题色变体与 Busy/Loading 加载状态实战 SukiUI 是面向 AvaloniaUI 的开源 UDiskover社区版开源文件索引与搜索引擎Diskover社区版开源文件索引与搜索引擎 项目介绍 Diskover社区版 是一款强大的开源文件索引、文件搜索引擎以及数据管理和分析工具它利用Elast上一篇哪些数据会离开你的MacOpenOats录音同意与隐私合规完全指南下一篇foobox foobar2000 皮肤安装指南亮暗双主题歌词与简介面板全内置创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

UGUI撞上DOTS:Canvas性能黑洞与ECS渲染管线重构

UGUI撞上DOTS:Canvas性能黑洞与ECS渲染管线重构

简介:UGUIDots 是一套面向数据技术栈(DOTS)的 UI 解决方案,专为希望在 Unity 中兼顾 UGUI 工作流与 ECS 性能的开发者设计。它并非替代 Unity 原生 UI,而是在其基础上扩充,让 UI 设计流程基本保持不变&…

2026/10/17 2:34:37 阅读更多 →
科捷智能职位分析:售后服务工程师

科捷智能职位分析:售后服务工程师

本文基于科捷智能官方最新工作职责、任职资格撰写,精准聚焦新能源事业部锂电配套智能仓储物流设备售后场景,针对性拆解岗位定位、必备专业知识、核心实操技能、岗位职责、简历优化方案、高频面试真题及应答技巧,完全贴合企业用人标准与现场工…

2026/10/17 2:34:37 阅读更多 →
科捷智能职位分析:电气工程师(新能源事业部)

科捷智能职位分析:电气工程师(新能源事业部)

本文基于科捷智能官方工作职责与任职资格撰写,精准聚焦新能源事业部锂电赛道,主打锂电化成分容、原材料库、集片库、新能源仓储物流自动化电气设计与调试岗位。全面拆解岗位定位、专业知识、核心技能、工作权责、简历优化、高频面试题与应答技巧&#xf…

2026/10/17 2:34:37 阅读更多 →

最新新闻

Ray多机启动实战:大模型推理GPU集群调度与排障

Ray多机启动实战:大模型推理GPU集群调度与排障

最近在做一套多机大模型推理服务,模型权重分散在几台GPU机器上,头一回用Ray往多个节点拉起进程的时候,我犯了个很低级的错误:只在head节点执行了ray start --head,然后在另一台机器上敲了半天ray start --address...&a…

2026/10/17 3:24:49 阅读更多 →
Bootstrap 3 侧边导航栏生产级实现方案

Bootstrap 3 侧边导航栏生产级实现方案

简介:本资源是一份基于Bootstrap 3框架实现的响应式侧边导航栏完整示例,面向前端初学者与Web开发人员,解决在传统网页中快速构建结构清晰、适配多端(尤其移动端折叠交互)的垂直导航结构问题。压缩包共9个文件&#xff…

2026/10/17 3:24:49 阅读更多 →
OpenCV文档图像增强实战:从光照不均到高精度OCR预处理

OpenCV文档图像增强实战:从光照不均到高精度OCR预处理

1. 文档图像增强到底在解决什么问题做过文档扫描、拍照存档或者OCR识别的人,大概率都遇到过这样的场景:手机拍了一张纸质合同,光线不均匀,左边亮右边暗,中间还有一道阴影;或者用扫描仪扫出来的老文档&#…

2026/10/17 3:24:49 阅读更多 →
桌面端微信接入实战:用Claw中间件打通个人微信消息自动化

桌面端微信接入实战:用Claw中间件打通个人微信消息自动化

身边不少折腾过微信自动化的朋友,最后都卡在同一个地方:手机端的机器人方案要么要求系统环境特殊,要么长期挂着不稳定;云端方案又拿不到个人微信的完整会话数据,用起来总觉得隔了一层。我自己的需求其实很朴素——想把…

2026/10/17 3:24:49 阅读更多 →
TCP可靠传输与流量控制:滑动窗口、重传机制与RTO算法全解析

TCP可靠传输与流量控制:滑动窗口、重传机制与RTO算法全解析

很多同学学到“TCP 可靠传输与流量控制”这一篇时,第一反应往往是“又要背一堆机制和参数”。确实,这一篇是计网里知识点最密集的章节之一,但如果你只知道“超时重传”“滑动窗口”这六个字,考场上照样容易翻车。我带过不少学生&a…

2026/10/17 3:24:49 阅读更多 →
AVPlayer打造资讯App级列表视频流:UITableView自动播放与Cell复用实践

AVPlayer打造资讯App级列表视频流:UITableView自动播放与Cell复用实践

简介:面向苹果设备开发者的列表视频播放功能示例,使用Objective-C编写,模仿网易视频与今日头条的交互体验,能够解决列表滚动预览、点击全屏与自动暂停等常见需求。工程覆盖UITableView/UICollectionView上的视频滚动播放、AVFound…

2026/10/17 3:23:48 阅读更多 →

日新闻

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

简介:《DeepSeek使用方法.pdf》是一份面向DeepSeek入门及进阶用户的完整使用指南,重点围绕V3与R1两款模型的能力差异与适用场景展开,帮助读者根据任务类型与成本选择合适的模型。资源共1个PDF文件,压缩包大小约311KB,篇…

2026/10/17 0:00:25 阅读更多 →
200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

简介:这是一份聚焦DeepSeek提示词优化的《200Deepseek润色指令》PDF文档,共收录两百余条可直接套用的润色指令,涵盖语法修正、风格统一、逻辑梳理、表达精炼等维度,并针对商务写作、学术论文、广告文案等场景给出差异化建议。文档…

2026/10/17 0:00:25 阅读更多 →
OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

简介:本资源是一份基于OpenCV的本科课程设计完整报告,面向计算机视觉初学者、图像处理学习者及高校通信/信息类专业学生,解决物体智能计数与检测结果结构化记录的实际问题。项目覆盖图像预处理、轮廓检测、边界框绘制、轨迹栏交互式参数调节、…

2026/10/17 0:00:25 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/16 21:35:51 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/17 1:44:59 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/16 15:04:24 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 21:54:38 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 3:49:43 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 14:23:36 阅读更多 →