日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Solr Facet(分片)

發(fā)布時(shí)間:2023/12/31 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Solr Facet(分片) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>

在schema文件設(shè)置字段的type類(lèi)型是string,不分詞,只能被整個(gè)搜索。facet的該字段可以整個(gè)展示,就像淘寶的搜索條件一樣。


一、Facet介紹

solr facet 是solr搜索的一大特色,facet不好翻譯,有說(shuō)是垂直搜索,有說(shuō)是分片搜索,但都不是很好,還是懶得翻譯了,就叫facet ,具體功能看下面的例子意會(huì)吧。

?

比如你上淘寶,輸入“筆記本”進(jìn)行搜索,就會(huì)出現(xiàn)品牌分類(lèi),價(jià)格范圍等分類(lèi),這個(gè)就叫facet了。這個(gè)例子也許好不是那么準(zhǔn)確的描述facet,不過(guò)基本上就是這個(gè)意思。對(duì)輸入關(guān)鍵字后搜索出來(lái)的結(jié)果再進(jìn)行分類(lèi)。

?




?

二、?Facet查詢(xún)

進(jìn)行Facet查詢(xún)需要在請(qǐng)求參數(shù)中加入facet=on或者facet=true只有這樣Facet組件才起作用.

1.?Field?Facet

Facet字段通過(guò)在請(qǐng)求中加入facet.field參數(shù)加以聲明,如果需要對(duì)多個(gè)字段進(jìn)行Facet查詢(xún),那么將該參數(shù)聲明多次.比如

http://localhost:8983/solr/select?q=聯(lián)想&facet=on&facet.field=cpu&facet.field=videoCard

?

查詢(xún)返回

?



  • <lst?name="facet_counts">??

  • <lst?name="facet_queries"/>??

  • <lst?name="facet_fields">??

  • <lst?name="cpu">??

  • <int?name="Intel?酷睿2雙核?T6600">48</int>??

  • ?<int?name="Intel?奔騰雙核?T4300">28</int>??

  • <int?name="Intel?酷睿2雙核?P8700">18</int>??

  • <int?name="Intel?酷睿2雙核?T6570">11</int>??

  • <int?name="Intel?酷睿2雙核?T6670">11</int>??

  • <int?name="Intel?奔騰雙核?T4400">9</int>??

  • <int?name="Intel?酷睿2雙核?P7450">9</int>??

  • <int?name="Intel?酷睿2雙核?T5870">8</int>??

  • <int?name="Intel?賽揚(yáng)雙核?T3000">7</int>??

  • <int?name="Intel?奔騰雙核?SU4100">6</int>??

  • <int?name="Intel?酷睿2雙核?P8400">6</int>??

  • <int?name="Intel?酷睿2雙核?SU7300">5</int>??

  • <int?name="Intel?酷睿?i3?330M">4</int>??

  • </lst>??

  • <lst?name="videoCard">??

  • <int?name="ATI?Mobility?Radeon?HD?4">63</int>??

  • <int?name="NVIDIA?GeForce?G?105M">24</int>??

  • <int?name="NVIDIA?GeForce?GT?240M">21</int>??

  • <int?name="NVIDIA?GeForce?G?103M">8</int>??

  • <int?name="NVIDIA?GeForce?GT?220M">8</int>??

  • <int?name="NVIDIA?GeForce?9400M?G">7</int>??

  • <int?name="NVIDIA?GeForce?G?210M">6</int>??

  • ????</lst>??

  • ????</lst>??

  • ????<lst?name="facet_dates"/>??

  • </lst>??

  • ?

    ?

    各個(gè)Facet字段互不影響,且可以針對(duì)每個(gè)Facet字段設(shè)置查詢(xún)參數(shù).以下介紹的參數(shù)既可以應(yīng)用于所有的Facet字段,也可以應(yīng)用于每個(gè)單獨(dú)的Facet字段.應(yīng)用于單獨(dú)的字段時(shí)通過(guò)

    ?

    f.字段名.參數(shù)名=參數(shù)值

    這種方式調(diào)用.比如facet.prefix參數(shù)應(yīng)用于cpu字段,可以采用如下形式

    f.cpu.facet.prefix=Intel

    ?


    三、facet 參數(shù)

    facet的參數(shù)見(jiàn)solr官方wiki ?http://wiki.apache.org/solr/SimpleFacetParameters

    ?

    說(shuō)明:

    搜索結(jié)果按照Facet的字段分組并統(tǒng)計(jì)

    ?

    facet 參數(shù)字段要求

    字段必須被索引

    ?

    #.field Facet

    facet=on 或 facet=true

    ?

    1.facet.field ?

    分組的字段

    2.facet.prefix?

    表示Facet字段前綴

    3.facet.limit?

    Facet字段返回條數(shù)

    4.facet.offict?

    開(kāi)始條數(shù),偏移量,它與facet.limit配合使用可以達(dá)到分頁(yè)的效果

    5.facet.mincount?

    Facet字段最小count,默認(rèn)為0

    6.facet.missing?

    如果為on或true,那么將統(tǒng)計(jì)那些Facet字段值為null的記錄

    7.facet.method?

    取值為enum或fc,默認(rèn)為fc, fc表示Field Cache

    8.facet.enum.cache.minDf?

    當(dāng)facet.method=enum時(shí),參數(shù)起作用,文檔內(nèi)出現(xiàn)某個(gè)關(guān)鍵字的最少次數(shù)

    ?

    例:

    &facet=on

    &facet.field=city_id

    &facet.field=address

    ?

    http://localhost:8983/solr/select/?q=*:*&indent=on&facet=on&facet.field=unit_price&facet.field=developer_id

    ?

    返回結(jié)果facet_counts:

    Xml代碼??

  • <lst?name="facet_counts">??

  • <lst?name="facet_queries"/>??

  • <lst?name="facet_fields">??

  • ????<lst?name="unit_price">??

  • ????????<int?name="9100.0">2</int>??

  • ????????<int?name="1100.0">1</int>??

  • ????</lst>??

  • ????<lst?name="developer_id">??

  • ????????<int?name="101">2</int>??

  • ????????<int?name="100">1</int>??

  • ????</lst>??

  • </lst>??

  • <lst?name="facet_dates"/>??

  • </lst>??

  • ?

    #.Date Facet

    日期類(lèi)型的字段

    ?

    1.facet.date?

    表示需要Data Facet的字段名

    2.facet.date.start

    起始時(shí)間.時(shí)間一般格式為"1995-12-31T12:59:59Z"

    另外可以使用"NOW","YEAR","MONTH"等

    3.facet.date.end

    結(jié)束時(shí)間

    4.facet.date.gap

    時(shí)間間隔

    5.facet.date.hardend

    true|false?

    6.facet.date.other

    before|after|between|none|all 默認(rèn)為none

    before會(huì)對(duì)start之前的值做統(tǒng)計(jì)

    after會(huì)對(duì)end之后的值做統(tǒng)計(jì)

    between會(huì)對(duì)start至end之間的值做統(tǒng)計(jì),如果hardend為true的話,那么改值就是各個(gè)時(shí)間段統(tǒng)計(jì)值的和

    none 表示該項(xiàng)禁用

    all 表示before,after,all都會(huì)統(tǒng)計(jì)

    ?

    例:

    $facet=on

    &facet.date=date

    &facet.date.start=2009-1-1T0:0:0Z

    &facet.date.end=2010-1-1T0:0:0Z

    &facet.date.gap=;1MONTH

    &facet.date.other=all

    ?

    7.facet.date.include

    lower|upper|edge|outer|all

    ?

    ?

    #.Facet Query

    facet.query 可以對(duì)任意的字段進(jìn)行篩選

    ?

    例:

    &facet=on

    &facet.query=date:[2009-1-1T0:0:0Z TO 2010-1-1T0:0:0Z]


    轉(zhuǎn)載于:https://my.oschina.net/HuifengWang/blog/308759

    總結(jié)

    以上是生活随笔為你收集整理的Solr Facet(分片)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。