全文檢索
外观
在文献检索中,全文检索是在全文资料库中查询特定文本的技术。全文检索与基于元数据的查询方法不同,前者会搜索对象中的所有内容,而后者只根据部分内容进行检索,如标题或摘要等。
执行全文检索任务的程序一般叫做搜索引擎,其功能是根据使用者输入的查询文字从资料库中找到符合的内容。
建立索引
[编辑]当文本数量较少时,可以直接逐一对比数据库中的文本。然而,当需要处理大量文本或频繁查询时,全文检索通常会被分为两个阶段:索引建立与搜索。
在索引建立阶段,索引器会扫描数据库中的文本,并将文本转换为适合检索的数据结构。索引条目通常会记录词语出现在哪些文档中,并可能包含该词语在文档中的出现次数、相对位置等信息,以支持更快速的检索与排序。
在搜索阶段,系统主要依据索引来定位符合条件的候选文档,而不是逐字扫描所有原始文本。随后,系统可能会结合索引中的统计信息进行相关性评分,并在需要时读取部分原文内容,用于高亮显示、摘要生成或进一步排序。
索引器通常会对文本进行预处理,例如分词、大小写规范化、去除或降低停用词的影响等。有些索引器也会使用词干提取(stemming)或词形还原(lemmatization),将同一词语的不同变体归一化为相同的形式,以提升检索效果。
全文索引的相关议题
[编辑]- 語根處理 (stemming)
- 符素解析器 (token parser) 1-gram, 2-gram , n-gram
- 斷詞/分詞 word segmentation
- 倒排索引 inverted index
演算法、搜索方法的模型
[编辑]- 布林式 boolean
- 統計模型 Probabilistic model
- 向量空間模型 vector base model
- 隱性語義模型 Latent semantic model
评估的标准
[编辑]- 查全率(recall rate),查準率(precision)
开放源代码的全文检索系统
[编辑]- Apache Solr
- BaseX
- Clusterpoint Server (freeware licence for a single-server)
- DataparkSearch
- Ferret
- Ht-//Dig
- Hyper Estraier
- KinoSearch
- Lemur/Indri
- Lucene
- mnoGoSearch
- Sphinx
- Swish-e
- Xapian
- ElasticSearch
- Meilisearch
和中文有關的議題
[编辑]- 分词
- 语法解析
- 古籍问题
- 多语言混合
優化
[编辑]- 剔除字(Stopwords)
- 詞性標註
- 规范文件(authority file)
- 知識體系,本體論(ontology)
- 超連結分析(page rank)技術
历史即未来的趋势
[编辑]- 自然语言搜索