日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

本文介紹了帶過濾功能的Spinx搜索查詢的處理方法,對(duì)大家解決問題具有一定的參考價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧!

問題描述

我需要按POST_CATEGORY_NAME(字符串值)列在Spinx查詢中添加額外的篩選,
我的當(dāng)前索引:

  source min
    {
        type = mysql
        sql_host = localhost
        sql_user = root
        sql_pass =
        sql_db = test
        sql_query = select  p.id,  p.title, p.description, l.Latitude, l.Longitude FROM post p join location l on l.id = p.location_id
       // here I need filter by category name with post_id the same as 
       // p.id in table post
        sql_attr_float = Latitude
        sql_attr_float = Longitude
    }

我有3個(gè)表:POST、LOCATION和POST_CATEGORY
我的數(shù)據(jù)庫(kù)關(guān)系:1)發(fā)布位置一對(duì)一,
2)帶有POST_CATEGORY的帖子是一對(duì)多。

POST_CATEGORY表,此表只有兩列:POST_ID和POST_CATEGORY_NAME列,當(dāng)此表中的POST_ID按距離映射時(shí),我需要按此POST_CATEGORY_NAME進(jìn)行搜索。

我用這樣的查詢按位置過濾,它工作得很好:

select *, geodist(48.712002, 2.677411, latitude, longitude) dist from serv1  where match('searchText*') and dist < 20 ;

在我的SELECT查詢之后,我希望在結(jié)果中包含以下列:

|id|緯度|經(jīng)度|POST_CATEGORY_NAME|dist

并按POST_CATEGORY_NAME篩選。

所以當(dāng)我搜索時(shí),我需要這樣的內(nèi)容:

 select *, geodist(48.712002, 2.677411, latitude, longitude) dist from serv1  where match('searchText*') and dist < 20 and post_category_name in ("All", "Shop");

請(qǐng)幫幫我。

推薦答案

因?yàn)槊總€(gè)帖子(可能)有多個(gè)類別,所以必須選擇如何編制索引。1)可以保持現(xiàn)在的狀態(tài),并且每個(gè)帖子都有獅身人面像文檔,如果帖子在多個(gè)類別中,那么POST_CATEGORY_NAME實(shí)際上將包含多個(gè)值。

.或者2)可以改為每個(gè)帖子類別有一個(gè)文檔。因此,如果一個(gè)文檔屬于多個(gè)類別,則可能會(huì)有多個(gè)結(jié)果。


選項(xiàng)1更簡(jiǎn)單,但選項(xiàng)2最終會(huì)更靈活(可以組合搜索,也可以不組合搜索,但您的獅身人面像查詢可能需要一個(gè)GROUP BY TO,以獲得每個(gè)帖子一個(gè)結(jié)果)

但目前的選項(xiàng)1..。

sql_query = SELECT p.id, p.title, p.description, l.Latitude, l.Longitude, 
     GROUP_CONCAT(c.category_name) AS post_category_name 
  FROM post p  
  INNER JOIN location l ON (l.id = p.location_id) 
  LEFT JOIN category c ON (c.post_id = p.id) 
  GROUP BY p.id 
  ORDER BY NULL

sql_field_string = post_category_name 

.將類別同時(shí)作為字符串屬性(用于檢索)和字段(用于匹配)

select id, post_category_name , geodist(48.712002, 2.677411, latitude, longitude) dist 
  from serv1 
  where match('searchText* @post_category_name All|Shop') and dist < 20;

雖然您可以在WHERE中使用POST_CATEGORY_NAME屬性,但如果可以使用全文查詢(字段)進(jìn)行篩選,通常會(huì)更好。

這篇關(guān)于帶過濾功能的Spinx搜索查詢的文章就介紹到這了,希望我們推薦的答案對(duì)大家有所幫助,

分享到:
標(biāo)簽:Spinx 功能 查詢 過濾
用戶無(wú)頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫(kù),初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定