2015-12-03 29 views
0

sphinx擴展語法有不同的搜索選項。在斯芬克斯查詢中使用OR運算符進行精確搜索

  • 精確搜索:「我喜歡吃」 //將匹配精確短語
  • 或搜索:(吃|睡眠|夢)

是否有可能將它們混合,並建立類似的查詢即:

"I love to (eat|sleep|dream)" 

我知道這是可以簡化並拆分或條件,不同的精確的短語,如:

"I love to eat" | "I love to sleep" | "I love to dream" 

但我打算使用大量的OR組和很多內部的選項,並且擴展這個查詢最終會有一個巨大的。

那麼有可能在獅身人面像的精確匹配語法中使用OR語法?

回答

1

不,它不可能使用「OR」的短語的操作(在" S爲中心的話,強制執行相鄰字)內 - 正確的名稱就是你所謂的「精確匹配」。

唉,沒有另一個'嚴格的順序'操作符和'接近'(即沒有'之前'操作符)。所以你不得不同時使用這兩種東西,所以像

("I love to" << (eat|sleep|dream)) NEAR/3 ("I love to" NEAR/1 (eat|sleep|dream)) 

這不是更簡單,而且會爭辯是更復雜和更復雜!需要中間的NEAR/3以確保您在文檔中的相同文檔上匹配(否則存在誤報的邊緣案例)。


的過牆的想法,如果你有很多這樣的「OR」名單,是不是實現它們在查詢,使用詞形等來代替。缺點是你需要事先了解它們(即編入索引),而「退出」更加複雜。