Dodawanie profilów oceniania w celu zwiększenia wyników wyszukiwania

W tym artykule dowiesz się, jak zdefiniować profil oceniania. Profil oceniania to krytyka umożliwiająca zwiększenie wyniku wyszukiwania na podstawie parametrów, które podajesz. Na przykład można chcieć znaleźć dopasowania w polu "tagi", aby było bardziej istotne niż to samo dopasowanie znalezione w "opisach". Kryteria mogą być polem ważonym (takim jak przykład "tagi") lub funkcją.

Profile oceniania są definiowane w indeksie wyszukiwania i wywoływane w polach niewektorowych w żądaniach zapytań. Można utworzyć wiele profilów, a następnie zmodyfikować logikę zapytań, aby wybrać, która z nich jest używana.

Uwaga

Nieznane pojęcia dotyczące istotności? Następujący segment wideo w serwisie YouTube szybko przekazuje do przodu sposób działania profilów oceniania w usłudze Azure AI Search. Możesz również odwiedzić stronę Istotność i ocenianie w usłudze Azure AI Search , aby uzyskać więcej informacji.

Definicja profilu oceniania

Profil oceniania ma nazwę obiektu zdefiniowanego w schemacie indeksu. Profil może składać się z ważonych pól, funkcji i parametrów.

Poniższa definicja przedstawia prosty profil o nazwie "geo". Ten przykład zwiększa wyniki z terminem wyszukiwania w polu hotelName. Używa distance również funkcji , aby faworyzować wyniki znajdujące się w odległości 10 kilometrów od bieżącej lokalizacji. Jeśli ktoś wyszukuje termin "inn", a "inn" jest częścią nazwy hotelu, dokumenty zawierające hotele z "inn" w promieniu 10 KM bieżącej lokalizacji będą wyświetlane wyżej w wynikach wyszukiwania.

"scoringProfiles": [
  {  
    "name":"geo",
    "text": {  
      "weights": {  
        "hotelName": 5
      }                              
    },
    "functions": [
      {  
        "type": "distance",
        "boost": 5,
        "fieldName": "location",
        "interpolation": "logarithmic",
        "distance": {
          "referencePointParameter": "currentLocation",
          "boostingDistance": 10
        }                        
      }                                      
    ]                     
  }            
]

Aby użyć tego profilu oceniania, zapytanie jest sformułowane w celu określenia parametru scoringProfile w żądaniu. Jeśli używasz interfejsu API REST, zapytania są określane za pośrednictwem żądań GET i POST. W poniższym przykładzie parametr "currentLocation" ma ogranicznik pojedynczej kreski (-). Następuje po nim współrzędnych długości i szerokości geograficznej, gdzie długość geograficzna jest wartością ujemną.

GET /indexes/hotels/docs?search+inn&scoringProfile=geo&scoringParameter=currentLocation--122.123,44.77233&api-version=2020-06-30

Zwróć uwagę na różnice składni podczas korzystania z funkcji POST. W przypadku funkcji POST wartość "scoringParameters" jest mnoga i jest tablicą.

POST /indexes/hotels/docs&api-version=2020-06-30
{
    "search": "inn",
    "scoringProfile": "geo",
    "scoringParameters": ["currentLocation--122.123,44.77233"]
}

To zapytanie wyszukuje termin "inn" i przekazuje je w bieżącej lokalizacji. Zwróć uwagę, że to zapytanie zawiera inne parametry, takie jak scoringParameter. Parametry zapytania, w tym "scoringParameter", są opisane w artykule Search Documents (INTERFEJS API REST).

Zobacz przykład rozszerzony, aby przejrzeć bardziej szczegółowy przykład profilu oceniania.

Jak są obliczane wyniki

Wyniki są obliczane dla zapytań wyszukiwania pełnotekstowego. Dopasowania są oceniane na podstawie tego, jak istotne jest dopasowanie, a w odpowiedzi zapytania są zwracane najwyższe wyniki dopasowań. Ogólny wynik dla każdego dokumentu jest agregacją poszczególnych wyników dla każdego pola, w którym obliczany jest indywidualny wynik każdego pola na podstawie częstotliwości terminów i częstotliwości dokumentów wyszukiwanych terminów w tym polu (nazywanych tf-IDF lub częstotliwością odwrotnej częstotliwości dokumentu).

Możesz użyć parametru featuresMode (wersja zapoznawcza), aby zażądać dodatkowych szczegółów oceniania za pomocą wyników wyszukiwania (w tym wyników na poziomie pola).

Kiedy dodać logikę oceniania

Należy utworzyć co najmniej jeden profil oceniania, gdy domyślne zachowanie klasyfikacji nie wykracza wystarczająco daleko w celu spełnienia celów biznesowych. Możesz na przykład zdecydować, że istotność wyszukiwania powinna faworyzować nowo dodane elementy. Podobnie może istnieć pole zawierające marżę zysku lub inne pole wskazujące potencjalne przychody. Zwiększenie wyników, które są bardziej znaczące dla użytkowników lub firmy, często jest czynnikiem decydującym o wdrożeniu profilów oceniania.

Kolejność oparta na trafnościach na stronie wyszukiwania jest również implementowana za pomocą profilów oceniania. Rozważ użycie stron wyników wyszukiwania w przeszłości, które umożliwiają sortowanie według ceny, daty, oceny lub istotności. W usłudze Azure AI Search profile oceniania mogą służyć do określania "istotności". Definicja istotności jest zdefiniowana przez użytkownika, oparta na celach biznesowych i typie środowiska wyszukiwania, które chcesz dostarczyć.

Kroki dodawania profilu oceniania

Aby zaimplementować niestandardowe zachowanie oceniania, dodaj profil oceniania do schematu definiującego indeks. W indeksie może być maksymalnie 100 profilów oceniania (zobacz Limity usług), ale w danym zapytaniu można określić tylko jeden profil.

  1. Zacznij od definicji indeksu. Profile oceniania można dodawać i aktualizować w istniejącym indeksie bez konieczności ponownego kompilowania. Użyj żądania indeksu aktualizacji, aby opublikować poprawkę.

  2. Wklej szablon podany w tym artykule.

  3. Podaj nazwę. Profile oceniania są opcjonalne, ale w przypadku dodania nazwy jest wymagana. Pamiętaj, aby przestrzegać konwencji nazewnictwa usługi Azure AI Search dla pól (zaczyna się od litery, unika znaków specjalnych i wyrazów zarezerwowanych).

  4. Określ kryteria zwiększania. Pojedynczy profil może zawierać pola ważone, funkcje lub oba te pola.

Należy pracować iteracyjnie przy użyciu zestawu danych, który pomoże Ci udowodnić lub obalić skuteczność danego profilu.

Profile oceniania można zdefiniować w witrynie Azure Portal, jak pokazano na poniższym zrzucie ekranu lub programowo za pomocą interfejsów API REST lub w zestawach SDK platformy Azure, takich jak klasa ScoringProfile w zestawie Azure SDK dla platformy .NET.

Add scoring profiles page

Używanie pól ważonych

Używaj pól ważonych, gdy kontekst pola jest ważny, a zapytania są wyszukiwaniem pełnotekstowym. Jeśli na przykład zapytanie zawiera termin "airport", możesz chcieć "lotnisko" w polu Opis mieć większą wagę niż w polu HotelName.

Pola ważone składają się z pola z możliwością wyszukiwania i liczby dodatniej, która jest używana jako mnożnik. Jeśli oryginalny wynik pola HotelName wynosi 3, wzmocniony wynik dla tego pola staje się 6, przyczyniając się do wyższego ogólnego wyniku dla samego dokumentu nadrzędnego.

"scoringProfiles": [  
    {  
      "name": "boostKeywords",  
      "text": {  
        "weights": {  
          "HotelName": 2,  
          "Description": 5 
        }  
      }  
    }
]

Korzystanie z funkcji

Używaj funkcji, gdy proste wagi względne są niewystarczające lub nie mają zastosowania, podobnie jak w przypadku odległości i świeżości, które są obliczeniami na danych liczbowych. Można określić wiele funkcji na profil oceniania. Aby uzyskać więcej informacji na temat typów danych EDM używanych w usłudze Azure AI Search, zobacz Obsługiwane typy danych.

Function opis
"świeżość" Zwiększa się według wartości w polu data/godzina (Edm.DateTimeOffset). Ta funkcja ma atrybut "boostingDuration", dzięki czemu można określić wartość reprezentującą przedział czasu, w którym występuje zwiększenie.
"wielkość" Zwiększa się w zależności od tego, jak wysoka lub niska jest wartość liczbowa. Scenariusze wywołujące tę funkcję obejmują zwiększenie marży zysku, najwyższą cenę, najniższą cenę lub liczbę pobrań. Tej funkcji można używać tylko z polami Edm.Double i .Edm.Int W przypadku funkcji wielkości można odwrócić zakres, wysoki do niski, jeśli chcesz, aby wzorzec odwrotny (na przykład zwiększyć niższe ceny elementów więcej niż wyższej ceny elementów). Biorąc pod uwagę zakres cen od $100 do $1, można ustawić "boostingRangeStart" na 100 i "boostingRangeEnd" na 1, aby zwiększyć niższe ceny przedmiotów.
"odległość" Zwiększa bliskość lub lokalizację geograficzną. Tej funkcji można używać tylko z polami Edm.GeographyPoint .
"tag" Zwiększa się według tagów, które są wspólne zarówno dla wyszukiwanych dokumentów, jak i ciągów zapytań. Tagi są udostępniane w parametrze "tagsParameter". Tej funkcji można używać tylko z polami wyszukiwania typu Edm.String i Collection(Edm.String).

Reguły korzystania z funkcji

  • Funkcje można stosować tylko do pól, które są przypisywane jako filtrowalne.
  • Typ funkcji ("świeżość", "wielkość", "odległość", "tag") musi mieć małe litery.
  • Funkcje nie mogą zawierać wartości null ani pustych.

Szablon

W tej sekcji przedstawiono składnię i szablon profilów oceniania. Zapoznaj się z dokumentacją właściwości w następnej sekcji, aby zapoznać się z opisami atrybutów profilu oceniania.

"scoringProfiles": [  
  {   
    "name": "name of scoring profile",   
    "text": (optional, only applies to searchable fields) {   
      "weights": {   
        "searchable_field_name": relative_weight_value (positive #'s),   
        ...   
      }   
    },   
    "functions": (optional) [  
      {   
        "type": "magnitude | freshness | distance | tag",   
        "boost": # (positive number used as multiplier for raw score != 1),   
        "fieldName": "(...)",   
        "interpolation": "constant | linear (default) | quadratic | logarithmic",   

        "magnitude": {
          "boostingRangeStart": #,   
          "boostingRangeEnd": #,   
          "constantBoostBeyondRange": true | false (default)
        }  

        // ( - or -)  

        "freshness": {
          "boostingDuration": "..." (value representing timespan over which boosting occurs)   
        }  

        // ( - or -)  

        "distance": {
          "referencePointParameter": "...", (parameter to be passed in queries to use as reference location)   
          "boostingDistance": # (the distance in kilometers from the reference location where the boosting range ends)   
        }   

        // ( - or -)  

        "tag": {
          "tagsParameter":  "..."(parameter to be passed in queries to specify a list of tags to compare against target field)   
        }
      }
    ],   
    "functionAggregation": (optional, applies only when functions are specified) "sum (default) | average | minimum | maximum | firstMatching"   
  }   
],   
"defaultScoringProfile": (optional) "...", 

Odwołanie do właściwości

Atrybut Opis
name Wymagany. Jest to nazwa profilu oceniania. Jest zgodny z tymi samymi konwencjami nazewnictwa pola. Musi zaczynać się od litery, nie może zawierać kropek, dwukropków ani symboli @ i nie może zaczynać się od frazy azureSearch (z uwzględnieniem wielkości liter).
text Zawiera właściwość weights.
Wagi Opcjonalny. Pary nazwa-wartość, które określają pole z możliwością wyszukiwania i dodatnią liczbę całkowitą lub zmiennoprzecinkową, za pomocą których można zwiększyć wynik pola. Dodatnia liczba całkowita lub liczba staje się mnożnikiem oryginalnego wyniku pola wygenerowanego przez algorytm klasyfikacji. Jeśli na przykład wynik pola wynosi 2, a wartość wagi to 3, wzmocniony wynik dla pola będzie wynosić 6. Poszczególne wyniki pól są następnie agregowane w celu utworzenia wyniku pola dokumentu, który jest następnie używany do klasyfikacji dokumentu w zestawie wyników.
— funkcje Opcjonalny. Funkcję oceniania można zastosować tylko do pól, które można filtrować.
typ funkcji > Wymagane dla funkcji oceniania. Wskazuje typ funkcji do użycia. Prawidłowe wartości obejmują wielkość, świeżość, odległość i tag. W każdym profilu oceniania można uwzględnić więcej niż jedną funkcję. Nazwa funkcji musi mieć małe litery.
zwiększenie funkcji > Wymagane dla funkcji oceniania. Liczba dodatnia używana jako mnożnik dla wyniku pierwotnego. Nie może być równa 1.
nazwa pola funkcji > Wymagane dla funkcji oceniania. Funkcję oceniania można zastosować tylko do pól, które są częścią kolekcji pól indeksu i które można filtrować. Ponadto każdy typ funkcji wprowadza dodatkowe ograniczenia (świeżość jest używana z polami daty/godziny, wielkością z polami całkowitymi lub podwójnymi oraz odległością z polami lokalizacji). Można określić tylko jedno pole na definicję funkcji. Na przykład aby użyć wielkości dwa razy w tym samym profilu, należy uwzględnić dwie definicje wielkości, jedną dla każdego pola.
interpolacja funkcji > Wymagane dla funkcji oceniania. Definiuje nachylenie, dla którego zwiększa się wskaźnik od początku zakresu do końca zakresu. Prawidłowe wartości to Linear (wartość domyślna), Stała, Kwadratowa i Logarytmiczna. Aby uzyskać szczegółowe informacje, zobacz Ustawianie interpolacji .
wielkość funkcji > Funkcja oceniania wielkości służy do zmieniania klasyfikacji na podstawie zakresu wartości dla pola liczbowego. Oto niektóre z najczęstszych przykładów użycia: "Oceny gwiazdek

:" Zmień ocenianie na podstawie wartości w polu "Ocena gwiazd". Gdy dwa elementy są istotne, element o wyższej ocenie zostanie wyświetlony jako pierwszy.
"Margines:" Jeśli dwa dokumenty są istotne, sprzedawca detaliczny może chcieć zwiększyć dokumenty, które mają wyższe marże jako pierwsze.
"Liczba kliknięć:" W przypadku aplikacji, które śledzą akcje kliknięcia do produktów lub stron, można użyć wielkości, aby zwiększyć liczbę elementów, które mają tendencję do największego ruchu.
"Liczba pobierania:" W przypadku aplikacji, które śledzą pobieranie, funkcja wielkości pozwala zwiększyć elementy, które mają najwięcej pobrań.
zwiększenie wielkości > funkcjiRangeStart > Ustawia wartość początkową zakresu, w którym jest oceniana wielkość. Wartość musi być liczbą całkowitą lub zmiennoprzecinkową. W przypadku ocen gwiazdek od 1 do 4 będzie to 1. W przypadku marginesów powyżej 50%, będzie to 50.
zwiększenie wielkości > funkcjiRangeEnd > Ustawia wartość końcową zakresu, dla którego wielkość jest oceniana. Wartość musi być liczbą całkowitą lub zmiennoprzecinkową. W przypadku ocen gwiazdek od 1 do 4 będzie to 4.
stała wielkości > funkcjiBoostBeyondRange > Prawidłowe wartości to true lub false (wartość domyślna). Po ustawieniu wartości true pełne zwiększenie będzie nadal stosowane do dokumentów, które mają wartość pola docelowego, które jest wyższe niż górny koniec zakresu. Jeśli wartość false, zwiększenie tej funkcji nie zostanie zastosowane do dokumentów o wartości pola docelowego, które znajduje się poza zakresem.
świeżość funkcji > Funkcja oceniania świeżości służy do zmieniania wyników klasyfikacji elementów na podstawie wartości w polach DateTimeOffset. Na przykład element o nowszej dacie może być sklasyfikowany wyżej niż starsze elementy.

Istnieje również możliwość klasyfikacji elementów, takich jak zdarzenia kalendarza z przyszłymi datami, dzięki czemu elementy bliżej prezentu mogą być klasyfikowane wyżej niż elementy w przyszłości.

W bieżącej wersji usługi jeden koniec zakresu zostanie naprawiony do bieżącego czasu. Drugi koniec to czas w przeszłości w oparciu o zwiększenieDuracji. Aby zwiększyć zakres czasów w przyszłości, użyj negatywnego wzmocnieniaDuration.

Szybkość, z jaką zwiększenie zmienia się z maksymalnego i minimalnego zakresu, jest określana przez interpolację zastosowaną do profilu oceniania (patrz rysunek poniżej). Aby odwrócić zastosowany czynnik zwiększający, wybierz współczynnik zwiększenia o wartości mniejszej niż 1.
funkcje > zwiększające świeżośćDuration > Ustawia okres wygaśnięcia, po którym zwiększenie zostanie zatrzymane dla określonego dokumentu. Aby zapoznać się ze składnią i przykładami, zobacz Set boostingDuration w poniższej sekcji.
odległość funkcji > Funkcja oceniania odległości służy do wpływania na ocenę dokumentów na podstawie tego, jak blisko lub daleko są względem lokalizacji geograficznej odwołania. Lokalizacja referencyjna jest podawana jako część zapytania w parametrze (przy użyciu parametru zapytania scoringParameter) jako argumentu lon,lat .
funkcja > odwołania do odległościPointParameter > Parametr, który ma zostać przekazany w zapytaniach do użycia jako lokalizacja referencyjna (przy użyciu parametru zapytania scoringParameter).
funkcja > zwiększająca odległośćDistance > Liczba wskazująca odległość w kilometrach od lokalizacji referencyjnej, w której kończy się zakres zwiększający.
tag functions > Funkcja oceniania tagów służy do wpływania na ocenę dokumentów na podstawie tagów w dokumentach i zapytaniach wyszukiwania. Dokumenty, które mają tagi wspólne dla zapytania wyszukiwania, zostaną wzmocnione. Tagi zapytania wyszukiwania są udostępniane jako parametr oceniania w każdym żądaniu wyszukiwania (przy użyciu parametru zapytania scoringParameter).
tagi tagów > funkcjiParameter > Parametr, który ma zostać przekazany w zapytaniach w celu określenia tagów dla określonego żądania (przy użyciu parametru zapytania scoringParameter). Parametr składa się z rozdzielanej przecinkami listy całych terminów. Jeśli dany tag na liście jest samą listą rozdzielaną przecinkami, możesz użyć normalizatora tekstu w polu, aby usunąć przecinki w czasie zapytania (mapować przecinek na spację). To podejście spowoduje "spłaszczenie" listy, tak aby wszystkie terminy były pojedynczym, długim ciągiem terminów rozdzielanych przecinkami.
functionAggregation Opcjonalny. Dotyczy tylko wtedy, gdy określono funkcje. Prawidłowe wartości to: suma (wartość domyślna), średnia, minimalna, maksymalna i pierwszaMatching. Wynik wyszukiwania to pojedyncza wartość obliczana z wielu zmiennych, w tym wiele funkcji. Ten atrybut wskazuje, w jaki sposób impulsy wszystkich funkcji są łączone w jeden zagregowany impuls, który następnie jest stosowany do podstawowego wyniku dokumentu. Wynik podstawowy jest oparty na wartości tf-idf obliczonej z dokumentu i zapytania wyszukiwania.
defaultScoringProfile Jeśli podczas wykonywania żądania wyszukiwania nie określono żadnego profilu oceniania, zostanie użyta domyślna ocena (tylko tf-idf ).

Możesz zastąpić wbudowany domyślny, zastępując profil niestandardowy jako używany, gdy w żądaniu wyszukiwania nie podano żadnego określonego profilu.

Ustawianie interpolacji

Interpolacje umożliwiają ustawienie kształtu nachylenia używanego do oceniania. Ponieważ ocenianie jest wysokie do niskich, nachylenie jest zawsze malejące, ale interpolacja określa krzywą nachylenia w dół. Można użyć następujących interpolacji:

Interpolacji opis
linear W przypadku elementów, które znajdują się w zakresie maksymalnym i minimalnym, zwiększenie zastosowane do elementu zostanie wykonane w stale malejącej ilości. Linear to domyślna interpolacja profilu oceniania.
constant W przypadku elementów znajdujących się w zakresie początkowym i końcowym do wyników klasyfikacji zostanie zastosowane stałe zwiększenie.
quadratic W porównaniu z interpolacją liniową, która ma stale malejący wzrost, Quadratic początkowo zmniejszy się w mniejszym tempie, a następnie zbliża się do zakresu końcowego, zmniejsza się w znacznie wyższym interwale. Ta opcja interpolacji nie jest dozwolona w funkcjach oceniania tagów.
logarithmic W porównaniu z interpolacją liniową, która ma stale malejący wzrost, logarytm będzie początkowo spadać w wyższym tempie, a następnie zbliża się do zakresu końcowego, zmniejsza się w znacznie mniejszym interwale. Ta opcja interpolacji nie jest dozwolona w funkcjach oceniania tagów.

Constant, linear, quadratic, log10 lines on graph

Ustawianie zwiększania czasu

boostingDuration jest atrybutem freshness funkcji. Służy do ustawiania okresu wygaśnięcia, po którym zwiększenie spowoduje zatrzymanie dla określonego dokumentu. Na przykład, aby zwiększyć linię produktu lub markę dla 10-dniowego okresu promocyjnego, należy określić 10-dniowy okres jako "P10D" dla tych dokumentów.

boostingDuration musi być sformatowana jako wartość XSD "dayTimeDuration" (ograniczony podzestaw wartości czasu trwania ISO 8601). Wzorzec tego jest następujący: "P[nD][T[nH][nM][nS]]".

Poniższa tabela zawiera kilka przykładów.

Czas trwania boostingDuration
1 dzień "P1D"
2 dni i 12 godzin "P2DT12H"
15 min "PT15M"
30 dni, 5 godzin, 10 minut i 6,334 sekundy "P30DT5H10M6.334S"

Aby uzyskać więcej przykładów, zobacz Schemat XML: Typy danych (W3.org witrynie internetowej).

Przykład rozszerzony

Poniższy przykład przedstawia schemat indeksu z dwoma profilami oceniania (boostGenre, newAndHighlyRated). Każde zapytanie względem tego indeksu, które zawiera dowolny profil jako parametr zapytania, użyje profilu do oceny zestawu wyników.

Profil boostGenre używa ważonych pól tekstowych, zwiększając dopasowania znalezione w polach albumTitle, gatunek i artistName. Pola są odpowiednio zwiększane o 1,5, 5 i 2. Dlaczego gatunek jest wzmocniony o wiele wyżej niż inni? Jeśli wyszukiwanie jest przeprowadzane na danych, które są nieco homogeniczne (podobnie jak w przypadku "gatunku" w indeksie magazynu muzyki), może być konieczne większe wariancja w względnych wagach. Na przykład w pliku musicstoreindex "rock" jest wyświetlany zarówno jako gatunek, jak i w identycznych opisach gatunku. Jeśli chcesz, aby gatunek przewyższał opis gatunku, pole gatunku będzie potrzebować znacznie większej wagi względnej.

{  
  "name": "musicstoreindex",  
  "fields": [  
    { "name": "key", "type": "Edm.String", "key": true },  
    { "name": "albumTitle", "type": "Edm.String" },  
    { "name": "albumUrl", "type": "Edm.String", "filterable": false },  
    { "name": "genre", "type": "Edm.String" },  
    { "name": "genreDescription", "type": "Edm.String", "filterable": false },  
    { "name": "artistName", "type": "Edm.String" },  
    { "name": "orderableOnline", "type": "Edm.Boolean" },  
    { "name": "rating", "type": "Edm.Int32" },  
    { "name": "tags", "type": "Collection(Edm.String)" },  
    { "name": "price", "type": "Edm.Double", "filterable": false },  
    { "name": "margin", "type": "Edm.Int32", "retrievable": false },  
    { "name": "inventory", "type": "Edm.Int32" },  
    { "name": "lastUpdated", "type": "Edm.DateTimeOffset" }  
  ],  
  "scoringProfiles": [  
    {  
      "name": "boostGenre",  
      "text": {  
        "weights": {  
          "albumTitle": 1.5,  
          "genre": 5,  
          "artistName": 2  
        }  
      }  
    },  
    {  
      "name": "newAndHighlyRated",  
      "functions": [  
        {  
          "type": "freshness",  
          "fieldName": "lastUpdated",  
          "boost": 10,  
          "interpolation": "quadratic",  
          "freshness": {  
            "boostingDuration": "P365D"  
          }  
        },  
        {
          "type": "magnitude",  
          "fieldName": "rating",  
          "boost": 10,  
          "interpolation": "linear",  
          "magnitude": {  
            "boostingRangeStart": 1,  
            "boostingRangeEnd": 5,  
            "constantBoostBeyondRange": false  
          }  
        }  
      ]  
    }  
  ],  
  "suggesters": [  
    {  
      "name": "sg",  
      "searchMode": "analyzingInfixMatching",  
      "sourceFields": [ "albumTitle", "artistName" ]  
    }  
  ]   
}  

Zobacz też