IRESearch库被视为能够逐字化和存储单个值的独立索引。索引数据以每次/每次翻新为基础处理,IE现有数据版本/修订永远不会修改,并且将更新/删除视为所述数据的新版本/修订。这允许在索引上进行琐碎的多线程读/写操作。该索引通过多线程“作者”接口公开其数据处理功能,该界面将每个文档抽象视为索引和/或存储的字段集合。该索引通过“读取器”接口公开其数据检索功能,该接口从索引中返回与指定查询匹配的索引。查询本身是使用API中可用的查询构建块直接构建的查询树。查询基础架构提供了通过一个或多个排名/评分实现订购结果的能力。排名/评分实现逻辑是基于插件的,并且根据需要在运行时懒惰,可以添加自定义排名/评分逻辑,而无需重新编译IRESearch库。
索引由多个独立部分组成,称为段和索引元数据。索引元数据存储有关特定索引版本/修订版活动索引段的信息。每个索引段都是一个索引本身,由以下逻辑组件组成:
通过基于插件的格式读取/写入对携带的组件的访问。索引可能包含使用不同格式创建的片段。
数据库记录表示为称为文档的抽象。文档实际上是索引/存储字段的集合。为了处理处理,每个字段应至少满足IndexedField或StoredField概念。
对于T型为IndexedField ,必须满足T型的对象m的满足:
| 表达 | 需要 | 效果 |
|---|---|---|
m.name() | 输出类型必须可转换为irs::string_ref | 值用作关键名称。 |
m.get_tokens() | 输出类型必须可转换为irs::token_stream* | 代币流用于反转过程中的填充。如果值是nullptr字段,则将其视为未索引。 |
m.index_features() | 输出类型必须隐式转换为irs::IndexFeatures | 在索引期间要求进行评估的一组功能。例如,它可能包含处理位置和频率的请求。后来可以在查询和评分期间使用评估的信息。 |
m.features() | 输出类型必须可转换为const irs::flags& | 一组用户提供的功能将与字段相关联。例如,它可能包含存储字段规范的请求。后来,存储的信息可以在查询和评分期间使用。 |
对于T型为StoredField ,必须满足T型的对象m以下条件:
| 表达 | 需要 | 效果 |
|---|---|---|
m.name() | 输出类型必须可转换为irs::string_ref | 值用作关键名称。 |
m.write(irs::data_output& out) | 输出类型必须可转换为布尔。 | 可以将任意数据写入以out表示的流,以便稍后使用index_reader api检索书面值。如果什么都没有写,但是返回值是true ,则将存储的值视为标志。如果返回的值为false ,那么即使已经写入了out ,也没有存储任何东西。 |
数据存储抽象可以将数据存储在内存中或文件系统上,具体取决于实例化的实现。目录至少存储所有当前使用的索引数据版本/修订版。对于没有目录的活动用户的情况,至少要存储最后一个数据版本/修订版。未使用的数据版本/修订可以通过Directory_Cleaner删除。索引的单个版本/修订由与上述版本/修订版相关的一个或多个段组成,并可能共享。
用于索引数据的单个实例每个指导对象。数据可以以人数为基础索引,也可以从另一个读者中获取琐碎目录合并功能。作者的每个commit()都会在相应目录中生成数据视图的新版本/修订。此外,该界面还提供了目录碎片化功能,以允许将多个较小版本/修订段压缩为较大的更紧凑的表示。作者通过begin() / commit() / rollback()方法支持两阶段交易。
在给定时间点的索引可重复使用/刷新的视图。多个读者可以使用相同的目录,并且可以指向该目录中数据的不同版本/修订。
v3.10或更高版本
v1.57.0或更高版本(仅标题)
BOOST_ROOT= < path-to > /boost_1_57_0make
make install或点lz4_root在源目录中与iResearch一起构建
如果将iResearch与/mt添加add_definitions(“/mtd”)汇总到cmake_unofficial/cmakelists.txt的末尾,因为cmake会忽略命令行参数-DCMAKE_C_FLAGS =/MTD
mkdir build && cd build
cmake -DCMAKE_INSTALL_PREFIX= < install-path > -DBUILD_STATIC_LIBS=on -g " Visual studio 17 " -Ax64 ../contrib/cmake_unofficial
cmake --build .
cmake --build . --target install或点lz4_root在源目录中与iResearch一起构建
LZ4_ROOT= < install-path >Win32二进制文件也可用于:
V53或更高
./configure --disable-samples --disable-tests --enable-static --srcdir= " $( pwd ) " --prefix= < install-path > --exec-prefix= < install-path >
make install或在源目录处的ICU_ROOT点与Iresearch一起构建或通过Distribution的软件包管理器:Libicu
寻找链接:“ ICU4C二进制文件”
ICU_ROOT= < path-to-icu >自定义cmakelists.txt旨在与雪球V2.0.0及更高版本一起使用。至少已经测试了在提交53739A805CFA6C77FF8496DC711DC1C106D987C1上的测试
git clone https://github.com/snowballstem/snowball.git
mkdir build && cd build
cmake -DENABLE_STATIC=OFF -DNO_SHARED=OFF -g " Unix Makefiles " ..
cmake --build .
cmake -DENABLE_STATIC=OFF -DNO_SHARED=ON -g " Unix Makefiles " ..
cmake --build .或指向源目录的雪球_ROOT与Iresearch或通过Distribution的软件包管理器一起构建:libstemmer
自定义cmakelists.txt基于修订版5137019D68BEFD633333CE8B1CD48065F41E77ED43E后来的版本可能会出于您自身的汇编失败风险而使用
git clone https://github.com/snowballstem/snowball.git
git reset --hard adc028f3ae646623bda2f99191fe9dc3287a909b
mkdir build && cd build
set PATH=%PATH% ; < path-to > /build/Debug
cmake -DENABLE_STATIC=OFF -DNO_SHARED=OFF -g " Visual studio 12 " -Ax64 ..
cmake --build .
cmake -DENABLE_STATIC=OFF -DNO_SHARED=ON -g " Visual studio 12 " -Ax64 ..
cmake --build .或指向Snowball_root在源目录中与Iresearch一起构建
对于静态构建:
- 在MSVC开放中:build/snowball.sln
- set:stemmer->属性 - >配置属性 - > c /c ++ - >代码生成 - >运行时库= /mtd
- 构建 - >构建解决方案
SNOWBALL_ROOT= < path-to-snowball >点vpack_root在源目录中与iResearch一起构建
mkdir build && cd build
cmake ..
make或点gtest_root在源目录中与iResearch一起构建
mkdir build && cd build
cmake -g " Visual studio 12 " -Ax64 -Dgtest_force_shared_crt=ON -DCMAKE_DEBUG_POSTFIX= " " ..
cmake --build .
mv Debug ../lib或点gtest_root在源目录中与iResearch一起构建
GTEST_ROOT= < path-to-gtest >下载任何数量的停止列表,例如:https://github.com/snowballemy/snowball-website/tree/master/master/algorithms/gle/stop.txt.txt https https https://code.google.com/p/stop-words/p/stop-words/-
IRESEARCH_TEXT_STOPWORD_PATH= < path-to-stopword-lists >如果将变量iresearch_text_stopword_path放在未设置
git clone < IResearch code repository > /iresearch.git iresearch
cd iresearch
mkdir build && cd build生成构建文件<*nix>:
cmake -DCMAKE_BUILD_TYPE=[Debug | Release | Coverage] -g " Unix Makefiles " ..
- 如果构建未找到某些库,则设置所需的环境>变量(例如boost_root,boost_librarydir,lz4_root,openfst_root,gtest_root)
- 如果找不到分配路径中的ICU或雪球,则可能需要以下其他>环境变量:> icu_root_suffix = x86_64-linux-gnu snowball_root_suffix = x86_64-linux-gnu
生成构建文件(Win32):
cmake -g " Visual studio 12 " -Ax64 ..如果构建未找到某些库,则设置所需的环境变量(例如BOOST_ROOT,BOOST_LIBRARYDIR,LZ4_ROOT,OPENFST_ROOT,GTEST_ROOT)
为此构建设置构建标识符(可选)
echo " <build_identifier> " > BUILD_IDENTIFIER构建库:
cmake --build .测试库:
cmake --build . --target iresearch-check安装库:
cmake --build . --target install代码覆盖范围:
cmake --build . --target iresearch-coverage有Python包装器用于Iresearch。包装器可访问目录读取器对象。有关用法示例,请参见 /python /脚本
为了构建Pyresearch erearch swig Generator。 add -duse_pyresearch = on to cmake命令行生成PyResearch目标
运行目标PyResearch-Install
某些ICU安装程序的某些版本似乎无法通过路径环境变量提供所有ICU DLL,可能需要进行手动调整。
使用Libiresearch的共享版本。在运行PyResearch之前,请安装IRESEARCH。
外部第三方依赖性必须分别向IRESEARZ库提供。它们可以通过分销包管理系统安装,也可以从源构建以及相应设置的适当环境变量进行安装。
v1.57.0或更高版本(Locale System螺纹)用于功能中的功能(不包括ICU中的功能)
用于压缩/减压字节/字符串数据
分析仪用于解析,转换和令牌字符串数据
分析仪用于计算单词词干(IE rots),以逐字完成“雪球”不支持的语言的更灵活的匹配单词
用于为IRESEARZ库编写测试
用于JSON序列化/次要化
通过分析:: text_analyzer使用,用于滤除不应影响文本的噪声单词,例如“ en''这些是通常的'a','',''等...下载任何数量的停止列表,eg,eg,eg from:https://github.com/snowball weball ball stem/snowball-weball-weball weball-weball-weball-weebball-weebball-weeball-tree/tree/tree/master/master/master/algorith/algorith/allgormath/allethy///////hod.tt https://code.google.com/p/stop-words/或创建一个自定义的语言 - 规范列表,用stopwords将文件放在文件(UTF8用一个单行编码的UTF8编码),第一个whitespace之后的任何文本被忽略后的任何文本),在与其语言相通用的目录中(支持多个文件,都将被解释为单个单个列表)。
| 筛选 | 描述 |
|---|---|
| IRS :: by_edit_distance | 用于根据Levenshtein距离过滤值 |
| IRS :: by_granular_range | 为了更快地过滤给定范围内的数字值,有可能指定开放/封闭范围 |
| IRS :: by_ngram_simurility | 用于基于NGRAM模型的值过滤 |
| IRS :: by_phrase | 对于单词敏感的值的滤波,可能会跳过选定位置 |
| IRS :: by_prefix | 用于过滤确切的值前缀 |
| IRS :: by_range | 用于在给定范围内过滤值,并有可能指定开放/封闭范围 |
| IRS :: by_same_position | 用于术语插入级敏感过滤精确值 |
| IRS :: by_term | 用于过滤精确的值 |
| IRS :: by_terms | 用于通过一组指定术语过滤精确值 |
| IRS :: by_wildcard | 用于根据匹配模式过滤值 |
| IRS :: BynestedFilter | 用于基于其子登机的匹配模式过滤文档 |
| IRS ::和 | 多个过滤器的布尔连接,适当地影响文档等级/分数 |
| IRS ::或 | 多个过滤器的布尔分离,适当地影响文档等级/得分(包括“最低匹配”功能) |
| IRS ::不 | 布尔否定多个过滤器 |
版权(C)2017-2023 Arangodb GmbH
版权(C)2016-2017 EMC Corporation
该软件是在许可证文件中提供的Apache 2.0软件许可下提供的。 IRESearch搜索引擎使用的第三方产品的许可信息可以在thix_party_readme.md中找到