title: 命名空间 lunr

sidebarDepth: 2

Namespace: lunr

英文原地址

lunr

用于配置和构造新的 lunr 索引的函数。

创建一个lunr.Builder实例,并使用trimmerstopWordFilterstemmer等工具设置管道。

Builder对象被提供给以参数传递的配置函数,允许自定义字段列表和其他构建器参数。

所有文档都必须添加到入的配置函数中。

示例:

  1. var idx = lunr(function () {
  2. this.field('title')
  3. this.field('body')
  4. this.ref('id')
  5. documents.forEach(function (doc) {
  6. this.add(doc)
  7. }, this)
  8. })

方法

generateStopWordFilter(token) → {lunr.PipelineFunction}

lunr.GenerateStopWordFilter从提供的停止词列表中构建一个stopWordFilter函数。

lunr.stopWordFilter中使用这个生成器构建,可以用于为应用程序或非英语语言生成自定义的stopWordFilters

参数名 类型 描述
token Array 要通过过滤器的关键词。

stemmer(token) → {lunr.Token}

lunr.stemmer是一种英语语言的词干提取器。是PorterStemmer的 JavaScript 实现。

参数名 类型 描述
token lunr.Token 要提取的字符串。

stopWordFilter() → {lunr.Token}

lunr.stopWordFilter是一个英文停止单词列表过滤器,列表中包含的任何单词都不会通过过滤器。

这是在管道函数中使用的方法。如果关键词没有通过过滤器,则将返回undefined

tokenizer(obj = null, metadata = null) → {}

用于将字符串分割为关键词的函数,以便插入到搜索索引当中。使用lunr.tokenizer.separator来分割字符串,改变该属性的值可以更改将字符串分割成关键词的方式。

它会通过调用toString将其参数转换为字符串,然后在lunr.tokenizer.separator中对该字符串进行分割。数组将把其元素转换为字符串并包装在一个lunr.Token中。

可选参数metadata可以传递给tokenizermetadata将被克隆,并作为元数据添加到从要转换为关键词的对象创建的每个关键词中。

参数名 类型 属性 描述
obj string 或 object 或 object[] 可空 要提取的字符串。
metadata object 可空 与每个关键词相关联的可选的元数据。

trimmer(token) → {lunr.Token}

lunr.trimmer是一个管道函数,用以在非单词字符进入索引之前清除关键词的前后的多余字符。

对于非拉丁字符,它可能不能正常工作,请不要使用或进行修改以用于非拉丁字符的语言。

参数名 类型 描述
token lunr.Token 要通过过滤器的关键词。