elzekool/koolsearch

该软件包最新版本(0.1.0)的许可信息不可用。

基于令牌的搜索引擎

0.1.0 2014-08-24 14:40 UTC

This package is not auto-updated.

Last update: 2024-09-24 08:09:19 UTC


README

A Lucene inspired Search platform, very simple at the moment. Can be used if a simple LIKE query won't suffice. It's not meant to replace SOLR or Lucene in any way, they are far superior. Use KoolSearch if you want to know a little bit about search platforms or need a simple PHP/MySQL only solution.

KoolSearch旨在与KoolDevelop框架一起使用,但也可以单独使用。文件名遵循PSR-0标准。您必须编写自己的存储类。

一些KoolSearch平台理解的示例查询

  • Apple -Computer
  • OS +"MS Dos"
  • +Linus +Tovalds
  • +title:Ubuntu title:Linux "OS"

主要部分

这是组成KoolSearch平台的主要部分。

  • 索引器和搜索器
  • 存储
  • 过滤器(字符过滤器、标记化器、转换器)
  • 查询标记化器、解析器和元素
  • 实体

索引器和搜索器

这是您将与之交互最多的类。索引器用于更新索引,搜索器用于查询索引。

存储

KoolSearch平台使用SQL数据库来存储索引。存储接口用于与数据库交互。如果使用KoolDevelop框架,则提供标准类。如果不使用此框架,则创建自己的。

过滤器(字符过滤器、标记化器、转换器)

用于索引和搜索,将字符串转换为术语。 字符过滤器在原始输入字符串上操作,执行诸如小写化、替换特殊字符等操作。 标记化器将过滤后的输入字符串转换为单个标记或术语。这些术语实际上是存储和从数据库中检索的。 转换器可以用于操作术语。它们在标记化术语上工作,而不是在输入字符串上。这使得它们与 字符过滤器 不同。转换器执行诸如删除重复术语、删除停用词和创建N-gram等操作。

查询标记化器、解析器和元素

KoolSearch支持用户友好的查询语法。这种语法由+和-运算符、字段选择(:)和短语组成。首先,搜索查询由标记化器标记化成标记。标记由解析器读取。解析器创建构成搜索查询的各个元素。目前支持元素是术语和短语。

实体

实体包含应用程序中使用的不同实体。这包括

  • 术语,存储在索引中的搜索术语
  • 文档,存储在索引中的索引文档,由其ID唯一标识
  • 字段,索引字段。包含索引和搜索索引的配置
  • 术语文档,索引建立的实际元素,包含术语和文档之间的链接
  • 搜索结果,搜索器返回的搜索结果,包含文档、分数和匹配的术语文档