我正在嘗試編寫一個查詢,該查詢從兩個SphinxSE表中加入MySQL的一些表。它基本上是一個「每行都有兩個名字」的類型數據庫,而這兩個名字每個都是一個鏈接到SphinxSE表的索引...我的目標是做一個基本上「或者其中一個名字匹配這個字符串的搜索在獅身人面像「。在單個查詢中加入多個SphinxSE表
我已經嘗試使用該查詢:
SELECT * from names
LEFT JOIN name_1_se ON name_1_se.id=names.name_1_id
LEFT JOIN name_2_se ON name_2_se.id=names.name_2_id
WHERE name_1_se.query=('some random name;mode=phrase;limit=100000;maxmatches=100000')
OR name_2_se.query=('some random name;mode=phrase;limit=100000;maxmatches=100000')
(該name_1_se和name_2_se表是與SphinxSE表)。
如果我在where中只使用單個查找,它可以正常工作......添加第二個子句(任一個)強制兩個SphinxSE「查找」強制結果返回空。
正在嘗試做什麼,或者它是SphinxSE的已知問題?我在斯芬克斯網站上找到的最接近的是自2008年起的這個錯誤http://sphinxsearch.com/bugs/view.php?id=255。
謝謝!
順便說一句,即使您在連接的右側指定了SphinxSE,查詢優化器也應該先將其翻轉並放置。它不能做兩個左連接。檢查EXPLAIN輸出。 – barryhunter
謝謝barryhunter:這是很多很好的信息。關於你在哪裏說的一個問題「sphinxSE表可以一次搜索多個獅身人面像索引」......我該怎麼做?當我在MySQL中定義SphinxSE表時,我必須將它指向一個特定的索引:我如何將它指向多個索引? – Narcissus
更新了答案,以顯示如何創建這樣的表。 – barryhunter