您在這裡

可以搜尋使用者但無法搜尋內容?

tky's 的頭像
tky 在 2006-12-29 (週五) 11:18 發表

各位好:

今天在自己網站使用搜尋功能時發現,只能搜尋使用者、但不能搜尋內容的怪現象(中英文都一樣)。搜尋結果都是零。當然,早期安裝的時後是沒有問題的。

查了一下log,發現每次搜尋內容時都會出現錯誤:

第一個總是這樣:

在database.mysql.inc的第121行: Table 'test.search_dataset' doesn't exist query: do_search CREATE TEMPORARY TABLE temp_search_results SELECT i.type, i.sid, 5 * (167.46606549104 * i.relevance) + 5 * POW(2, (GREATEST(n.created, n.changed, c.last_comment_timestamp) - 1167327231) * 6.43e-8) + 5 * (2.0 - 2.0 / (1.0 + c.comment_count * 0.33333333333333)) + 5 * (2.0 - 2.0 / (1.0 + nc.totalcount * 0.0040816326530612)) AS score FROM temp_search_sids i INNER JOIN search_dataset d ON i.sid = d.sid AND i.type = d.type INNER JOIN node n ON n.nid = i.sid LEFT JOIN node_comment_statistics c ON c.nid = i.sid LEFT JOIN node_counter nc ON nc.nid = i.sid WHERE (d.data LIKE '% 新聞 %') ORDER BY score DESC 。

第二個則是:

在database.mysql.inc的第121行: Table 'test.temp_search_results' doesn't exist query: do_search SELECT COUNT(*) FROM temp_search_results 。

實在太詭異了。
因為去查SQL資料庫,有關搜尋的資料庫明明就有,而且搜尋設定選項裡索引的結果是100%。

停用再啟用search模組沒什麼用;試著停用一些新安裝的模組,但發現問題也沒有改善。

各位有碰過這樣的情況嗎?

TKY

唉,後來發現是TKY自己眼拙,沒看到說自己就沒有search_dataset這個資料表,難怪一直無法搜尋。

只是很怪說,當初都是一起新增的資料表,怎麼會就這一個不見了。

問題解決就好

tky

不是的,search_dataset是mysql資料庫中的一個資料表,不可能出現在search module的folder裡面。
建議用phpmyadmin去檢查你的search相關資料表是否正確。
不正確的話就得刪除重裝相關的資料表。

tky

tky

ㄜ.......有點霧撒薩@____@
我才剛裝了DRUPAL......(還很嫩!)
phpmyadmin??
search相關資料表??
>"<我要在哪裡用phpmyadmin去哪裡檢查search相關資料表啊?
另外...我有看了你做的清華大學網站.....
MENU的下拉選單也是某一各MODULE麼?

喔,有點棘手。
你可以先按照charlesc的說法,先去看一下管理介面的搜尋部分是否有建立100%索引。如果有但還是無法搜尋的話,再去檢查mysql的search資料表。

先問一下christine是否對mysql有概念?
如果沒有,那就比較難解釋了。
phpmyadmin只是一個方便管理mysql的介面程式而已。到處都可以下載得到。
(christine連Drupal都裝好了,應該不會不曉得怎麼使用像phpmyadmin這樣的東西才對)
(自言自語:難不成Drupal已經親民到完全無痛的程度了?完全沒概念裝得好?嗯,說不定喔~~)

christine是把網站架在自己的電腦上呢?還是架在有資料庫的網站伺服器上頭呢?
如果是前者,那好辦,自己裝一個phpmyadmin就可以了(使用和Drupal相同的資料庫帳號密碼就可以登入資料庫了)。
如果是後者,嗯,通常主機商應該會提供類似的程式方便使用者透過HTTP的方式來檢視資料庫的。你的主機商沒有給這方面的東西嗎?要不然自己上傳一個phpmyadmin到伺服器上面去應該也可以。(TKY以前做過)

tky

tky

我是做網頁設計,負責視覺那一塊的啦!最近公司想用DRUPAL架一個討論區,所以我在試用一些THEME跟MODULE.......資料庫那些東西其實是工程師幫我設定的....
但是他們很忙.......我怕問他們太笨的問題!他們會想揍我.......
ANYWAY.......
我檢查了一下search settings
indexing status 顯示
"0% of the site has been indexed. There are 5 items left to index"
但是我按了Re-index site的按鈕好像沒什麼作用他還是0%
我還需要設定那裡 他才讀的到我的CONTENT呢?

這就是啦!索引零八成表示你的資料表根本沒有建立或者有錯誤,所以無法建立索引。這方面如果你不熟悉的話,可能就一定得去找你們公司的工程師請教一下。
至少請他們給你伺服器上面phpmyadmin的網址還有權限帳號密碼,讓你可以自己看一下缺了哪個部分的資料表。

Drupal預設要安裝哪些資料表,4.7版的話,要看Drupal資料夾中database資料夾裡頭database.4.1.mysql這個文件檔。5.0版的話,好像就沒有這個檔案(因為是無痛安裝?),不曉得該去哪看(知道的人講一下)。

如果你看不懂的話,就一定得請教你們公司的工程師,請他們幫你檢查「實際建立的資料表」和「預設建立哪些資料表」之間的差距。

如果TKY沒猜錯的話,應該就是沒有安裝好search_dataset這個sql資料表才對。補裝就好了。

tky

tky

這就怪啦,TKY當初裝的是4.7版的,回復資料表之後就沒問題了。
如果christine的資料表都有資料的話,管理頁面那邊怎麼會是索引0%呢?
應該是中間不知道哪裡出了差錯,嗯,christine有看到任何錯誤碼顯示在搜尋的網頁上嗎?po出來可能有點幫助。

如果沒有任何錯誤,嘿,那就真是鬼打牆了。
到Drupal暑期課程上去問問jimmy吧!

tky

tky

有看到任何錯誤碼顯示在搜尋的網頁上嗎?
應該是沒有...網頁狀態顯示為"完成"
頂多就是在我的search field上跟我說

Your search yielded no results

* Check if your spelling is correct.
* Remove quotes around phrases to match each word individually: "blue smurf" will match less than blue smurf.
* Consider loosening your query with OR: blue smurf will match less than blue OR smurf.

畫面就像我第一篇回應上的附加檔案02.jpg
@____@ 我們家工程師說可能是drupal的bug
要不然就真的是鬼打牆了>"<
plz 哪位好心人知道該怎麼解.....麻煩跟我說一聲!!

yeah!!!!成功了!!行了行了!
http://drupal.org/handbook/modules/search
"What you want to do is schedule a "cron job" that has a browser on your server regularly visit your "cron page." For instance, if your site were www.example.com your cron page would be http://www.example.com/cron.php. (This page is automatically set up for you when you install Drupal.) "
原來你們說的跑CRON是這意思!有了有了!真的會WORK!