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伺服器上,為網站及區域網環境下的文件伺服器進行搜索。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/156619.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-18 01:57
下一篇 2024-11-18 01:57

相關推薦

  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • Python 常用資料庫有哪些?

    在Python編程中,資料庫是不可或缺的一部分。隨著互聯網應用的不斷擴大,處理海量數據已成為一種趨勢。Python有許多成熟的資料庫管理系統,接下來我們將從多個方面介紹Python…

    編程 2025-04-29
  • openeuler安裝資料庫方案

    本文將介紹在openeuler操作系統中安裝資料庫的方案,並提供代碼示例。 一、安裝MariaDB 下面介紹如何在openeuler中安裝MariaDB。 1、更新軟體源 sudo…

    編程 2025-04-29
  • PHP怎麼接幣

    想要在自己的網站或應用中接受比特幣等加密貨幣的支付,就需要對該加密貨幣擁有一定的了解,並使用對應的API進行開發。本文將從多個方面詳細闡述如何使用PHP接受加密貨幣的支付。 一、環…

    編程 2025-04-29
  • 資料庫第三範式會有刪除插入異常

    如果沒有正確設計資料庫,第三範式可能導致刪除和插入異常。以下是詳細解釋: 一、什麼是第三範式和範式理論? 範式理論是關係資料庫中的一個規範化過程。第三範式是範式理論中的一種常見形式…

    編程 2025-04-29
  • leveldb和unqlite:兩個高性能的資料庫存儲引擎

    本文將介紹兩款高性能的資料庫存儲引擎:leveldb和unqlite,並從多個方面對它們進行詳細的闡述。 一、leveldb:輕量級的鍵值存儲引擎 1、leveldb概述: lev…

    編程 2025-04-28
  • Python怎麼導入資料庫

    Python是一種高級編程語言。它具有簡單、易讀的語法和廣泛的庫,讓它成為一個靈活和強大的工具。Python的資料庫連接類型可以多種多樣,其中包括MySQL、Oracle、Post…

    編程 2025-04-28
  • 使用PHP foreach遍歷有相同屬性的值

    本篇文章將介紹如何使用PHP foreach遍歷具有相同屬性的值,並給出相應的代碼示例。 一、基礎概念 在講解如何使用PHP foreach遍歷有相同屬性的值之前,我們需要先了解幾…

    編程 2025-04-28
  • Think-ORM數據模型及資料庫核心操作

    本文主要介紹Think-ORM數據模型建立和資料庫核心操作。 一、模型定義 Think-ORM是一個開源的ORM框架,用於簡化在PHP應用中(特別是ThinkPHP)與關係資料庫之…

    編程 2025-04-27
  • PHP獲取301跳轉後的地址

    本文將為大家介紹如何使用PHP獲取301跳轉後的地址。301重定向是什麼呢?當我們訪問一個網頁A,但是它已經被遷移到了另一個地址B,此時若伺服器端做了301重定向,那麼你的瀏覽器在…

    編程 2025-04-27

發表回復

登錄後才能評論