2013-03-29 9 views
6

Czy możesz mi wyjaśnić, co to jest facet? Co rozumiem jest, przypuśćmy, że mam następujące dokumenty.co oznacza aspekt w Solr?

State Country 
karntaka India 
Bangalore India 
Delhi  India 
Noida  India 

Powoduje zwijanie wielu samych wartości pola do pojedynczej wartości i zwraca liczbę wystąpień tej wartości. Teraz, gdy szukam na polu "Kraj", to oczywiście dostaję 4 razy Indie, więc utrzymuję aspekt = on i facet.field = Kraj, z motywem uzyskania tylko raz Indii, ale kiedy wystrzeliłem zapytanie raczej ja Dostaję
jakiś dziwny wynik

<lst name="responseHeader"> 
    <int name="status">0</int> 
    <int name="QTime">6</int> 
</lst> 
<result name="response" numFound="4" start="0"> 
    <doc> 
    <str name="country">India</str></doc> 
    <doc> 
    <str name="country">India</str></doc> 
    <doc> 
    <str name="country">India</str></doc> 
    <doc> 
    <str name="country">India</str></doc> 
</result> 
<lst name="facet_counts"> 
    <lst name="facet_queries"/> 
    <lst name="facet_fields"> 
    <lst name="country"> 
     <int name="a">4</int> 
     <int name="d">4</int> 
     <int name="di">4</int> 
     <int name="dia">4</int> 
     <int name="i">4</int> 
     <int name="ia">4</int> 
     <int name="in">4</int> 
     <int name="ind">4</int> 
     <int name="indi">4</int> 
     <int name="india">4</int> 
    </lst> 
    </lst> 
    <lst name="facet_dates"/> 
    <lst name="facet_ranges"/> 
</lst> 
</response> 

Może ktoś mi pomóc zrozumieć. Dzięki

Odpowiedz

3

Jeśli masz wpis Washington, USA, facet zgłosi 4 wyniki dla India i 1 dla USA.

Użyj typu pola string. Wydaje się, że użyłeś pola (tekstowego) z niskimi wartościami i n-gramowaniem, co może przydać się ludziom, którzy na przykład indukują Indie jako Inde. Pole łańcuchowe nie jest przetwarzane w ten sposób i dlatego najlepiej pasuje do pola przeznaczonego do fasetowania.

+0

Tak, dzięki, mam to. Od tej chwili używam techniki grupowania – voila