Class: Builder
lunr.Builder()
new Builder()
lunr.Builder
对一组文档执行索引,并返回lunr.index
的实例,以便进行查询。
索引的所有配置都是通过该 builder 完成的,要索引的字段、文档引用、文本处理管道和文档评分参数都要在创建索引之前在 builder 上设置好。
属性:
属性名 | 类型 | 描述 |
---|---|---|
_ref | string | 文档引用字段的内部引用 |
_fields | 对要建立索引的文档字段的内部引用 | |
invertedIndex | object | 反向索引将关键词映射到文档字段 |
documentTermFrequencies | object | 跟踪文档关键词的频率 |
documentLengths | object | 跟踪添加到索引中的文档的长度 |
tokenizer | lunr.tokenizer | 函数,用于将字符串拆分为用于索引的关键词 |
pipeline | lunr.Pipeline | 在建立索引之前,管道对关键词执行文本处理 |
searchPipeline | lunr.Pipeline | 在查询索引之前处理搜索词的管道 |
documentCount | number | 跟踪索引的文档总数 |
_b | number | 控制字段长度规范化的参数,设置为0 禁用规范化,1 则完全规范化字段长度,默认值为0.75 。 |
_k1 | number | 控制关键词频率增加多快导致关键词频率饱和的参数,默认值为1.2。 |
termIndex | number | 针对每个唯一关键词递增的计数器,用于标识关键词在向量空间中的位置。 |
metadataWhitelist | array | 已列入白名单索引的元数据键列表。 |
方法
add(doc, attributes)
将文档添加到索引中。
在向索引中添加字段之前,索引应该已经设置完全,文档 ref 和要索引的所有字段都已经指定。
文档必须有 ref 指定的字段名(默认情况下是'id'),它应该为索引定义所有字段,尽管null
或undefined
的值不会导致错误。
可以在构建时对整个文档提升权重(boost)。对文档提升权重表示该文档在搜索结果中的排名应该高于其他文档。
参数名 | 类型 | 描述 |
---|---|---|
doc | object | 要添加到索引的文档 |
attributes | object | 与此文档关联的可选属性。 - boost number 默认值是1 。向文档中所有关键词引用权重。 |
b(number)
用于调整计算相关性分数时对文档及其字段长度的重视程度的参数。值必须在0
~ 1
之间,默认值为0.75
。值为0
时将完全禁用任何规范化行为。
参数名 | 类型 | 描述 |
---|---|---|
number | number | 设置的值 |
build() → {lunr.Index}
构建索引值,创建 lunr.Index 的实例。
这就完成了索引过程,并且只有在所有文档都添加到索引中时才应该调用它。
返回值: lunr.Index
field(fieldName, attributes)
将自动添加到将被索引的文档字段列表中。每个被索引的文档都应该拥有这个字段。若索引文档中该字段为null
不会导致错误,但会限制搜索检索该文档的机会。
在将文档添加到索引之前,应该添加所有字段。在之后添加字段将不会对已经建立索引的文档产生影响。
我们可以在构建时提升(boost)字段的权重。这使得该字段中的关键词在排名搜索结果时更加重要。使用字段boost
来指定一个字段中的匹配比其他字段更重要。
参数:
参数名 | 类型 | 描述 |
---|---|---|
fieldName | number | 设置的值 |
attributes | object | 与该字段相关的配置属性 - boost number 默认值1 应用到该字段中所有关键词的提升权重。- extractor fieldExtractor 从文档中提取字段的函数。 |
报错:
fieldName
不能包含不支持的字符/
,否则会抛出RangeError
k1(number)
控制项频率上升导致项频率饱和的速度的参数。默认值是1.2。设置一个较高的值会给较慢的饱和度,一个较低的值会导致更快的饱和度。
参数:
参数名 | 类型 | 描述 |
---|---|---|
number | number | 设置的值 |
ref(ref)
设置用作文档引用的字段。每个文档都必须有这个字段。该字段在文档中的类型应该是字符串,如果不是字符串,则通过调用toString
将其强制为字符串。
默认的ref
是id
。
索引期间不应该更改ref
,它应该在任何文档添加到索引之前设置。在索引期间更改它可能会导致结果出现不一致。
参数:
参数名 | 类型 | 描述 |
---|---|---|
ref | string | 设置的值 |
use(plugin)
使用插件。
插件为一个函数,以索引构建器(builder)作为上下文调用。插件可以通过某种方式定制或扩展索引的行为。插件封装了构建索引时应该应用的自定义行为。
plugin
函数将以索引构建器作为参数调用,在调用use
时也可以传递其他参数。该函数将使用索引构建器作为其上下文来调用。
参数:
参数名 | 类型 | 描述 |
---|---|---|
plugin | function | 插件 |