您的位置:

php垂直搜索,php数据库搜索

本文目录一览:

php面试:什么是垂直搜索,斯芬克斯中分词原理?

垂直搜索引擎是应用于某一个行业、专业的搜索引擎,是搜索引擎的延伸和应用细分化。垂直搜索引擎为用户提供的并不是上百甚至上千万相关网页,而是范围极为缩小、极具针对性的具体信息。因此,特定行业的用户更加青睐垂直搜索引擎,是垂直搜索引擎的长期、稳定的群体。

搜索引擎采用的是什么技术?

随着互联网的迅猛发展、WEB信息的增加,用户要在信息海洋里查找自己所需的信息,就象大海捞针一样,搜索引擎技术恰好解决了这一难题。搜索引擎是指互联网上专门提供检索服务的一类网站,这些站点的服务器通过网络搜索软件或网络登录等方式,将Intenet上大量网站的页面信息收集到本地,经过加工处理建立信息数据库和索引数据库,从而对用户提出的各种检索作出响应,提供用户所需的信息或相关指针。用户的检索途径主要包括自由词全文检索、关键词检索、分类检索及其他特殊信息的检索。下面以网络搜索机器人为例来说明搜索引擎技术。

搜索引擎优化,通俗理解是:通过总结搜索引擎的排名规律,对网站进行合理优化,使你的网站在百度和Google的排名提高,让搜索引擎给你带来客户。深刻理解是:通过SEO这样一套基于搜索引擎的营销思路,为网站提供生态式的自我营销解决方案,让网站在行业内占据领先地位,从而获得品牌收益。同时打响品牌,让更多人明白其产品。

网络机器人(Robot)又被称作Spider、Worm或Random,核心目的是为获取Internet上的信息。一般定义为“一个在网络上检索文件且自动跟踪该文件的超文本结构并循环检索被参照的所有文件的软件”。机器人利用主页中的超文本链接遍历WWW,通过URL引用从一个HTML文档爬行到另一个HTML文档。网上机器人收集到的信息可有多种用途,如建立索引、HIML文件合法性的验证、URL链接点验证与确认、监控与获取更新信息、站点镜像等。

机器人安在网上爬行,因此需要建立一个URL列表来记录访问的轨迹。它使用超文本,指向其他文档的URL是隐藏在文档中,需要从中分析提取URL,机器人一般都用于生成索引数据库。所有WWW的搜索程序都有如下的工作步骤:

机器人从起始URL列表中取出URL并从网上读取其指向的内容;

从每一个文档中提取某些信息(如关键字)并放入索引数据库中;

从文档中提取指向其他文档的URL,并加入到URL列表中;

重复上述3个步骤,直到再没有新的URL出现或超出了某些限制(时间或磁盘空间);

给索引数据库加上检索接口,向网上用户发布或提供给用户检索。

搜索算法一般有深度优先和广度优先两种基本的搜索策略。机器人以URL列表存取的方式决定搜索策略:先进先出,则形成广度优先搜索,当起始列表包含有大量的WWW服务器地址时,广度优先搜索将产生一个很好的初始结果,但很难深入到服务器中去;先进后出,则形成深度优先搜索,这样能产生较好的文档分布,更容易发现文档的结构,即找到最大数目的交叉引用。也可以采用遍历搜索的方法,就是直接将32位的IP地址变化,逐个搜索整个Internet。

量贩式搜索引擎优化是一个技术含量很高的网络应用系统。它包括网络技术、数据库技术动标引技术、检索技术、自动分类技术,机器学习等人工智能技术。

垂直搜索引擎在电子商务中的应用

PANZER网站架构解决方案

我公司是领先的网站架构解决方案提供商,由互联网行业的一群知名的年轻人共同发起和创办,坐落于广州的天河科技园区,是由原来成立于2004年的磐志搜索引擎工作室发展壮大而成,我们执着于网站技术、网络蜘蛛和搜索引擎技术的研究开发和应用。

公司发起人团队有着丰富的网站开发、运营经验,曾经成功策划、开发和运营过被上市公司收购的大型网站平台和全国知名的电子商务网站。今天我们把我宝贵的经验分享给创业的站长们,致力于成为站长的事业贴心伙伴!

一个成功网站的发展过程中每一个阶段都涉及到技术的未知领域和新的问题,技术的未知和摸索造成了网站发展大量资源、时间、精力的投入甚至折返,很多好的商业模式在技术尝试的过程中坐失先机。

我们的宗旨是:领先的网站架构解决方案提供商。

我们拥有知识结构全面、专业、实施经验丰富的网站技术工程师、网站运营工程师、网络蜘蛛和搜索引擎技术工程师队伍。在C\C++、Python、JAVA?、PHP、AJAX等技术领域有国内领先的开发经验和实施能力。

PANZER解决方案包括:

★系统开发:

电子商务网站 PANZER电子商务引擎(PHP+Ajax+C)

门户资讯网站 PANZER门户资讯引擎(PHP+Ajax+C)

博客社区网站 PANZER博客社区引擎(PHP+Ajax+C)

垂直搜索引擎 PANZER蜘蛛+PANZER搜索

★定制开发:

网络爬虫(磐志蜘蛛) 主题定制+网络爬行+文件管理+监控(C/C++)

搜索引擎(磐志搜索) 索引、分词、检索、排序(C/C++)

★网络架构:

代理加速 Linux+ Squid

负载均衡 服务器集群( Cluster )Server负载平衡

双机热备 ***

★系统优化:

数据库优化 索引、存储过程设计、全文检索

PHP代码优化 安全性、效率、结构优化(时间0.05秒)

AJAX优化 压缩、安全性、互动性、可移植.

请教一下java和php协同开发的方法

引用

因为在做垂直搜索工作中,使用的是java编写的一个搜索类库。做垂直搜索,很多实用要使用到配置。当搜索的信息量大时,网站的更新。搜索程序的配置维护是一个不可忽视的问题。所以用了php做网页,提供配置界面,这样就可以不用直接修改配置文件或是配置数据库表。当把配置信息配置好了,我们需要检测配置是否正确,因为使用的是java程序,所以检测配置的正确与否使用的也是java程序来检测。这里就存在一个问题,就是需要把php页面上的信息传入到java程序中去检测。这个时候就需要php和java通信了。下面我就来介绍下怎么使php跟java通信(当然,你也可以使用类似webservice等技术)也就是php中调用java程序。 php要调用java程序:需要以下准备,php程序,java程序,还有就是shell程序或是bat程序。下面分别介绍下在linux服务器下php调用java程序和在windows服务器下调用java程序。前提是php,apache,jdk的环境都已经配置好。

一 在linux下php调用java程序是通过shell文件。分别是以下三个文件: test_shell.php test_shell.java test_shell.sh 他们的源代码如下:

1.test_shell.java程序代码

public class test_shell {

public static void main(String[] args) {

System.out.println("你输入的参数是:"+args[0]+"t"+args[1]);

}

}

2.test_shell.php程序代码

?php

/*

* 该函数是用来执行shell命令的,其实还可以使用:exec(),system(),

* popen()和pclose(),passthru() 函数。最长用的是前面两个和例中使

* 用的shell_exec()。

*/

$args1="我喜欢你";

$args2="我很爱你";

// 注意空格

$r=shell_exec("./test_shell.sh $args1 $args2");

echo $r;

?

3.test_shell.sh程序代码是

#!/bin/sh

JAVA_HOME=/usr/local/jdk

CLASSPATH=.:/usr/local/jdk/jre/lib/rt.jar:/usr/local/apache/htdocs/test_shell/test_shell.class

PATH=$PATH:$JAVA_HOME/bin

export JAVA_HOME CLASSPATH PATH

cd /usr/local/apache/htdocs/test_shell

java test_shell

#shell代码结束

以下是三个程序的存放路径和运行次序。

1.三个文件都必须在同一目录下,比如在/usr/local/apache/htdocs/test_shell/下,不然php很难调到java程序。

2.把test_shell.java程序编译成test_shell.class,然后把test_shell.class文件存放到CLASSPATH中。如果系统配置了那些环境变量,这里在配置一次是没有坏处的,也不会影响配置好的系统环境变量。这里设置的好处是当没有配置jdk环境配置,只有jre时,则需把jre放到/usr/local/jdk下就以。

二、下面先介绍在windows服务器下,php调用java程序是通过bat文件来的。分别是以下三个文件: test_bat.php test_bat.java test_bat.sh 他们的源代码如下:

1.java程序

public class test_bat {

public static void main(String[] args) {

System.out.println("你输入的参数是:"+args[0]+"t"+args[1]);

}

}

2.test_bat.php程序代码

?php

/*

* 该函数是用来执行shell命令的,其实还可以使用:exec(),system(),

* popen()和pclose(),passthru() 函数。最长用的是前面两个和例中使

* 用的shell_exec()。

*/

$args1="我喜欢你";

$args2="我很爱你";

// 注意空格

$r=shell_exec("./test_shell.sh $args1 $args2");

echo $r;

?

3.test_bat.sh程序代码是

@echo off

set path=%path%;%cd%jrebin

set CLASSPATH=.;%cd%jrelibrt.jar;%cd%test_bat.class

java test_bat %1 %2

#bat代码结束

1.三个文件都必须放在同一目录下,比如在/usr/local/apache/htdocs/test_bat/下,不然php很难调到java程序。

2.把test_bat.java程序编译成test_bat.class,然后把test_bat.class文件存放到CLASSPATH中。如果系统配置了那些环境变量,这里在配置是没有坏处的,也不会影响配置好的系统环境变量。这里设置的好处是当没有配置jdk环境配置,只有jre时,则需把jre放到跟跟test_bat.java同一目录下就行了。

三、上面两个例子中,test_shell.sh用的绝对路径,test_bat.bat是用的相对路径。不管是绝对还是相对,只要路径对了就行了。

开源搜索的20款开源搜索引擎系统

一些开源搜索引擎系统介绍,包含开源Web搜索引擎和开源桌面搜索引擎。

Sphider

Sphider是一个轻量级,采用PHP开发的web spider和搜索引擎,使用mysql来存储数据。可以利用它来为自己的网站添加搜索功能。Sphider非常小,易于安装和修改,已经有数千网站在使用它。

RiSearch PHP

RiSearch PHP是一个高效,功能强大的搜索引擎,特别适用于中小型网站。RiSearch PHP非常快,它能够在不到1秒钟内搜索5000-10000个页面。RiSearch是一个索引搜索引擎,这就意味着它先将你的网站做索引并建立一个数据库来存储你网站所有页面的关键词以便快速搜索。Risearch是全文搜索引擎脚本,它把所有的关键词都编成一个文档索引除了配置文件里面的定义排除的关键词。 RiSearch使用经典的反向索引算法(与大型的搜索引擎相同),这就是为什么它会比其它搜索引擎快的原因。

PhpDig

PhpDig是一个采用PHP开发的Web爬虫和搜索引擎。通过对动态和静态页面进行索引建立一个词汇表。当搜索查询时,它将按一定的排序规则显示包含关键字的搜索结果页面。PhpDig包含一个模板系统并能够索引PDF,Word,Excel,和PowerPoint文档。PHPdig适用于专业化更强、层次更深的个性化搜索引擎,利用它打造针对某一领域的垂直搜索引擎是最好的选择。

OpenWebSpider

OpenWebSpider是一个开源多线程Web Spider(robot:机器人,crawler:爬虫)和包含许多有趣功能的搜索引擎。

Egothor

Egothor是一个用Java编写的开源而高效的全文本搜索引擎。借助Java的跨平台特性,Egothor能应用于任何环境的应用,既可配置为单独的搜索引擎,又能用于你的应用作为全文检索之用。

Nutch

Nutch 是一个开源Java 实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具。包括全文搜索和Web爬虫。

Lucene

Apache Lucene是一个基于Java全文搜索引擎,利用它可以轻易地为Java软件加入全文搜寻功能。Lucene的最主要工作是替文件的每一个字作索引,索引让搜寻的效率比传统的逐字比较大大提高,Lucen提供一组解读,过滤,分析文件,编排和使用索引的API,它的强大之处除了高效和简单外,是最重要的是使使用者可以随时应自己需要自订其功能。

Oxyus

是一个纯java写的web搜索引擎。

BDDBot

BDDBot是一个简单的易于理解和使用的搜索引擎。它目前在一个文本文件(urls.txt)列出的URL中爬行,将结果保存在一个数据库中。它也支持一个简单的Web服务器,这个服务器接受来自浏览器的查询并返回响应结果。它可以方便地集成到你的Web站点中。

Zilverline

Zilverline是一个搜索引擎,它通过web方式搜索本地硬盘或intranet上的内容。Zilverline可以从PDF, Word, Excel, Powerpoint, RTF, txt, java, CHM,zip, rar等文档中抓取它们的内容来建立摘要和索引。从本地硬盘或intranet中查找到的结果可重新再进行检索。Zilverline支持多种语言其中包括中文。

XQEngine

XQEngine用于XML文档的全文本搜索引擎。利用XQuery做为它的前端查询语言。它能够让你查询XML文档集合通过使用关键字的逻辑组合。有点类似于Google与其它搜索引擎搜索HTML文档一样。XQEngine只是一个用Java开发的很紧凑的可嵌入的组件。

MG4J

MG4J可以让你为大量的文档集合构建一个被压缩的全文本索引,通过使内插编码(interpolative coding)技术。

JXTA Search

JXTA Search是一个分布式的搜索系统。设计用在点对点的网络与网站上。

YaCy

YaCy基于p2p的分布式Web搜索引擎。同时也是一个Http缓存代理服务器。这个项目是构建基于p2p Web索引网络的一个新方法。它可以搜索你自己的或全局的索引,也可以Crawl自己的网页或启动分布式Crawling等。

Red-Piranha

Red-Piranha是一个开源搜索系统,它能够真正”学习”你所要查找的是什么。Red-Piranha可作为你桌面系统(Windows,Linux与Mac)的个人搜索引擎,或企业内部网搜索引擎,或为你的网站提供搜索功能,或作为一个P2P搜索引擎,或与wiki结合作为一个知识/文档管理解决方案,或搜索你要的RSS聚合信息,或搜索你公司的系统(包括SAP,Oracle或其它任何Database/Data source),或用于管理PDF,Word和其它文档,或作为一个提供搜索信息的WebService或为你的应用程序(Web,Swing,SWT,Flash,Mozilla-XUL,PHP, Perl或c#/.Net)提供搜索后台等等。

LIUS

LIUS是一个基于Jakarta Lucene项目的索引框架。LIUS为Lucene添加了对许多文件格式的进行索引功能如:Ms Word,Ms Excel,Ms PowerPoint,RTF,PDF,XML,HTML,TXT,Open Office序列和JavaBeans.针对JavaBeans的索引特别有用当我们要对数据库进行索引或刚好用户使用持久层ORM技术如:Hibernate,JDO,Torque,TopLink进行开发时。

Apache Solr

Solr是一个高性能,采用Java5开发,基于Lucene的全文搜索服务器。文档通过Http利用XML加到一个搜索集合中。查询该集合也是通过 http收到一个XML/JSON响应来实现。它的主要特性包括:高效、灵活的缓存功能,垂直搜索功能,高亮显示搜索结果,通过索引复制来提高可用性,提供一套强大Data Schema来定义字段,类型和设置文本分析,提供基于Web的管理界面等。

Paoding

Paoding中文分词是一个使用Java开发的,可结合到Lucene应用中的,为互联网、企业内部网使用的中文搜索引擎分词组件。 Paoding填补了国内中文分词方面开源组件的空白,致力于此并希翼成为互联网网站首选的中文分词开源组件。 Paoding中文分词追求分词的高效率和用户良好体验。

Carrot2

Carrot2是一个开源搜索结果分类引擎。它能够自动把搜索结果组织成一些专题分类。Carrot2提供的一个架构能够从各种搜索引擎(YahooAPI、GoogleAPI、MSN Search API、eTools Meta Search、Alexa Web Search、PubMed、OpenSearch、Lucene index、SOLR)获取搜索结果。

Regain

regain是一款与Web搜索引擎类似的桌面搜索引擎系统,其不同之处在于regain不是对Internet内容的搜索,而是针对自己的文档或文件的搜索,使用regain可以轻松地在几秒内完成大量数据(许多个G)的搜索。Regain采用了Lucene的搜索语法,因此支持多种查询方式,支持多索引的搜索及基于文件类型的高级搜索,并且能实现URL重写及文件到HTTP的桥接,并且对中文也提供了较好的支持。

Regain提供了两种版本:桌面搜索及服务器搜索。桌面搜索提供了对普通桌面计算机的文档与局域网环境下的网页的快速搜索。服务器版本主要安装在Web服务器上,为网站及局域网环境下的文件服务器进行搜索。