LEANN Grep 搜索使用指南 概述 LEANN 的 grep 搜索功能可对索引文档中的特定代码模式、错误信息、函数名或精确短语进行完全匹配搜索。 基本用法 简单的 Grep 搜索 对比:语义搜索与 Grep 搜索 何时使用 Grep 搜索 使用场景 代码搜索:查找特定的函数定义、类名或变量引用 错误调试:定位精确的错误信息或堆栈跟踪 文档查阅:查找特定的 API 端点或精确术语 示例 技术细节 工作原理 文件位置:Grep 搜索在存储于 files Command Execution: Uses the system 命令中的原始文本上运行,支持不区分大小写的搜索 结果处理:解析 JSON 行并提取文本和元数据 评分:基于查询词出现次数的简单频率评分 搜索流程 评分算法
LEANN 的 grep 搜索功能可对索引文档中的特定代码模式、错误信息、函数名或精确短语进行完全匹配搜索。
from leann.api import LeannSearcher searcher = LeannSearcher("your_index_path") # Exact text search results = searcher.search("def authenticate_user", use_grep=True, top_k=5) for result in results: print(f"Score: {result.score}") print(f"Text: {result.text[:100]}...") print("-" * 40)
# Semantic search - finds conceptually similar content semantic_results = searcher.search("machine learning algorithms", top_k=3) # Grep search - finds exact text matches grep_results = searcher.search("def train_model", use_grep=True, top_k=3)
# Find function definitions functions = searcher.search("def __init__", use_grep=True) # Find import statements imports = searcher.search("from sklearn import", use_grep=True) # Find specific error types errors = searcher.search("FileNotFoundError", use_grep=True) # Find TODO comments todos = searcher.search("TODO:", use_grep=True) # Find configuration entries configs = searcher.search("server_port=", use_grep=True)
.jsonl filesgrep 命令中的原始文本上运行,支持不区分大小写的搜索Query: "def train_model" ↓ grep -i -n "def train_model" documents.leann.passages.jsonl ↓ Parse matching JSON lines ↓ Calculate scores based on term frequency ↓ Return top_k results
# Term frequency in document score = text.lower().count(query.lower())
结果按得分排序(得分越高越靠前),得分越高表示搜索词出现的次数越多。
RuntimeError: grep command not found. Please install grep or use semantic search.
解决方法:在您的系统上安装 grep:
sudo apt-get install grep# Check if your query exists in the raw data results = searcher.search("your_query", use_grep=True) if not results: print("No exact matches found. Try:") print("1. Check spelling and case") print("2. Use partial terms") print("3. Switch to semantic search")
#!/usr/bin/env python3 """ Grep Search Example Demonstrates grep search for exact text matching. """ from leann.api import LeannSearcher def demonstrate_grep_search(): # Initialize searcher searcher = LeannSearcher("my_index") print("=== Function Search ===") functions = searcher.search("def __init__", use_grep=True, top_k=5) for i, result in enumerate(functions, 1): print(f"{i}. Score: {result.score}") print(f" Preview: {result.text[:60]}...") print() print("=== Error Search ===") errors = searcher.search("FileNotFoundError", use_grep=True, top_k=3) for result in errors: print(f"Content: {result.text.strip()}") print("-" * 40) if __name__ == "__main__": demonstrate_grep_search()
免责声明:
本文档采用基于机器的 AI 翻译服务进行翻译。尽管我们力求准确,但请注意,自动翻译可能存在错误或不准确之处。应以原文语言版本的文档作为权威依据。如需获取关键信息,建议使用专业的人工翻译。对于因使用本翻译而产生的任何误解或误读,我们概不负责。