php 搜索引擎优化([博物馆])
优采云 发布时间: 2022-02-16 16:06php 搜索引擎优化([博物馆])
Solr 是一款基于 Lucene 的高性能全文搜索服务器,采用 Java5 开发。
同时进行了扩展,提供了比Lucene更丰富的查询语言,同时针对查询性能进行了可配置、可扩展和优化,并提供了完整的功能管理接口。非常好的全文搜索引擎。
Lucene 是 Apache 软件基金会 jakarta 项目组的一个子项目。它是一个开源的全文搜索引擎工具包,也就是说,它不是一个完整的全文搜索引擎,而是一个全文搜索引擎架构,它提供了一个完整的查询引擎和索引引擎,是文本分析的一部分引擎。
Solr 是一个独立的企业搜索服务器,具有类似 REST 的 API。
您通过 XML、JSON、CSV 或 HTTP 上的二进制文件将文档放入其中(称为“索引”)。您通过 HTTP GET 查询它并接收 XML、JSON、CSV 或二进制结果。
要开始使用 Solr,需要安装以下软件:
·Java 1.5 或更高版本。
·Ant 1.6.x 或更高版本。
·网络浏览器。
·servlet容器,如Tomcat5.5.
Solr主要通过以下三个文件进行配置:
(a)solr.xml
(b) solrconfig.xml -SolrConfigXml
“solrconfig.xml”是收录配置 Solritself 的大部分参数的文件。
(c) schema.xml -SchemaXml
“schema.xml”文件收录有关您的文档可以收录哪些字段的所有详细信息,以及在将文档添加到索引或查询这些字段时应如何处理这些字段。
schema.xml位于solr/conf/目录下,类似于数据表配置文件,定义了加入索引的数据的数据类型,主要包括类型、字段等一些默认设置。
访问 Solr 管理后台:
:8080/solr/admin/
可以将四种不同的索引请求传递给 Solr 索引 servlet:
(1)add/update 允许您向 Solr 添加文档或更新文档。这些添加和更新在提交之前将无法搜索。
(2)commit 告诉 Solr 自上次提交以来所做的所有更改都应该是可搜索的。
(3)优化重构 Lucene 文件以提高搜索性能。通常在索引完成后执行优化。
(4)可以通过id或者query指定delete。
如何使用 Solr:
安装 PHP 扩展:在 PHP 中使用 Apache Solrextension
使用CURL请求Solr地址获取数据(xml/json/phparray等格式)
只需要组装URL,如::8080/solr/select/?indent=on&version=2.2&q=Beijing&start=0&rows=10&fl=name
Solr 的一些查询参数:
q - 查询字符串,必填。
start——返回完整找到结果中第一条记录的偏移位置,从0开始,一般用于分页。
rows - 指定返回结果的最大记录数,使用start实现分页。
sort - 排序,desc|asc
wt –(writer type)指定输出格式,可以是xml、json、php、phps
fq - (filterquery)过滤查询,效果:在q查询匹配结果中,也是fq查询匹配,
fl-field 指定应在文档结果中以逗号分隔列表形式返回的字段集。默认为“*”,表示所有字段。
q.op – 覆盖模式。
df - 默认查询字段,通常默认指定
qt - (querytype) 指定处理查询请求的类型,一般不需要指定,默认为标准。
indent - 返回结果是否缩进,默认关闭,indent=true|on开启。一般调试json、php、phps、ruby输出需要这个参数。
version - 查询语法的版本,建议不要使用,默认由服务器指定。
搜索结果(XML 格式):
......
......
3. Sphinx — Sphinx 客户端
Sphinx 是一个基于 SQL 的全文搜索引擎。它可以与 MySQL 和 PostgreSQL 结合进行全文搜索。它可以提供比数据库本身更专业的搜索功能,让应用更容易实现专业的全文搜索。
Sphinx专门为一些脚本语言设计了搜索API接口,如PHP、Python、Perl、Ruby等,还为MySQL设计了存储引擎插件。
单个Sphinx索引最多可以收录1亿条记录,1000万条记录的查询速度为0.x秒(毫秒)。
Sphinx创建索引的速度是:创建100万条记录的索引只需要3到4分钟,1000万条记录的索引可以在50分钟内完成,而增量索引只收录最新的10万条记录,重建一次只需几十秒。
Sphinx 是一个搜索引擎,可以很好地与 MySQL 集成或单独运行。
它提供高索引和搜索性能,并支持通过 SphinxQL 进行查询。
SphinxQL 是一种基于结构化查询语言 (SQL) 的语言。
Sphinx 可以很好地扩展,可以使用分布式搜索功能处理数百万个收录 TB 级数据的文档。
Sphinx 使用:PHP 有一个 SphinxClient 类
<p>