Tworzenie schematu schematu optymalnej interpretacji zapytań

Funkcja interpretacji zapytań w Cloud Search automatycznie interpretuje i filtrów w zapytaniu użytkownika oraz przekształca te elementy w ustrukturyzowanych zapytań opartych na operatorach. Interpretacja zapytań używa zdefiniowanych operatorów oraz zindeksowane dokumenty w schemacie, aby ustalić, co użytkownik zapytania. Ta funkcja pozwala użytkownikom na wyszukiwanie przy minimalnym nakładzie pracy słów kluczowych, a jednocześnie uzyskać dokładne wyniki.

Rzeczywiste wyniki zależą od poziomu ufności. interpretacji zapytania. Poziom ufności zależy od kilku czynników, m.in. w miejscu, w którym ciągi zapytania pojawiają się w zindeksowanych dokumentach. Ciąg, taki jak jako aktor „Tom Hanks”, regularnie pojawiają się na pole schematu o nazwie actors daje wyższy poziom ufności. ten sam ciąg znaków, („Tom Hanks”) pojawiające się w akapicie, a nie w polu schematu, mogą skutkują niższym poziomem ufności. W przypadku wysokiego poziomu pewności wyniki z interpretacji zapytania są wyświetlane użytkownikowi. W przypadku słabszego wyniki z interpretacji zapytania są mieszane ze standardowym w wynikach wyszukiwania słowa kluczowego.

Przykład interpretacji zapytania

Załóżmy, że masz źródło danych, takie jak baza danych, zawierające informacje o filmach. Rysunek 1 przedstawia przykładowe zapytanie i wynik dla interpretacji.

Omówienie interpretacji zapytań
Rysunek 1. Interpretacja zapytań

Biorąc pod uwagę to przykładowe zapytanie, interpretacja zapytania wykonuje te działania:

  • Analizuje schemat i określa, że obiekty najwyższego poziomu w źródle danych są sklasyfikowane jako objecttype:movies. Interpretacja zapytań wie teraz, „filmy” jest typem obiektu.

  • Skanuje dokumenty w źródle danych w połączeniu ze schematem, aby: Określ, gdzie ciąg „action” ma miejsce. Jeśli ciąg znaków występuje głównie w konkretnym „gatunku” pole źródła danych, a następnie interpretacja zapytania ma pewność, że „działanie” to wartość właściwości „genre” zgodnie z definicją w schemacie. Jeśli ciąg występuje głównie w kontekście akapitów treści, a następnie spadek ufności interpretacji zapytania spada.

Wynikowa interpretacja zapytania:

  actor:“tom hanks” genre:action objecttype:movies

Interpretacja zapytań jest automatycznie włączona dla wszystkich klientów Cloud Search bez dodatkowej pracy. Aby jednak uzyskać optymalną interpretację zapytań, uporządkować schemat zgodnie z instrukcjami w tym dokumencie.

Utwórz strukturę schematu w celu ułatwienia interpretacji zapytań

Uporządkuj schemat tak, aby zapewnić, może być dla Ciebie korzystna interpretacja zapytań.

Włącz interpretowanie wyświetlanej nazwy

Interpretacja zapytań w Cloud Search wykorzystuje objectDefinitions i propertyDefinitions w schemacie, aby zinterpretować zapytanie użytkownika i dostosować wyników. Aby zmaksymalizować korzyści z zalet tych elementów schematu, utwórz intuicyjnych nazw wyświetlanych przy użyciu displayLabel dla nazw właściwości, objectDisplayLabel w przypadku nazw obiektów i operatorName w przypadku operatorów.

Poniższy schemat przedstawia intuicyjne wyświetlane nazwy obiektu filmu:

{
  "objectDefinitions": [
    {
      "name": "movie",
        "options": {
          "displayOptions": {
          "objectDisplayLabel": "Films"
        }
        ...
      },
      "propertyDefinitions": [
        {
          "name": "genre",
          "isReturnable": true,
          "isRepeatable": true,
          "isFacetable": true,
          "textPropertyOptions": {
          "retrievalImportance": { "importance": "HIGHEST" },
          "operatorOptions": {
            "operatorName": "genre"
          }
        },
        "displayOptions": {
          "displayLabel": "Category"
        }
      },
      ...
      ]
    }
  ]
}

W poprzednim przykładzie:

  • Definicja obiektu filmowego zawiera atrybut objectDisplayLabel „Film”.

  • Parametr genre propertyDefinition zawiera parametry operatorName „genre” (gatunek) i „Category” (Kategoria). displayLabel

Te wyświetlane nazwy pozwalają Cloud Search wykonać poniższe zapytanie interpretacje:

  • „Filmy akcji”, „gatunkowe filmy akcji” i „gatunek filmowy akcji” interpretowany jako genre:action object:movies.
  • „filmy akcji lub thrillery” według gatunku objecttype:movies genre:(action OR thriller)
  • „Film akcji” lub „filmy akcji” należy interpretować jako genre:action objecttype:movies
  • „filmy z kategorii komedii” są interpretowane jako genre:comedy objecttype:movies.

Włącz interpretację dat, wartości liczbowych i sortowania

Należy zdefiniować lessThanOperatorName i greaterThanOperatorName, określona w IntegerOperatorOptions, wszystkie daty i właściwości liczbowe. Te ustawienia umożliwiają automatyczną datę i przy użyciu interpretacji liczbowych. Aby włączyć interpretacje sortowania, ustaw opcję isSortable dla właściwości daty i wartości liczbowych. Poniżej schemat pokazuje, jak włączyć te opcje.

{
  "objectDefinitions": [
    {
      "options": {
        "displayOptions": {
          "objectDisplayLabel": "Films"
        }
      },
      "propertyDefinitions": [
        {
          "name": "runtime",
          "isReturnable": true,
          "isSortable": true,
          "integerPropertyOptions": {
            "orderedRanking": "DESCENDING",
            "minimumValue": {
              "value": 10
            },
            "maximumValue": {
              "value": 500
            },
            "operatorOptions": {
              "operatorName": "runtime",
              "lessThanOperatorName": "runtimelessthan",
              "greaterThanOperatorName": "runtimegreaterthan"
            }
          },
          "displayOptions": {
            "displayLabel": "Length"
          }
        },
        {
          "name": "releasedate",
          "isReturnable": true,
          "isSortable": true,
          "datePropertyOptions": {
            "operatorOptions": {
              "operatorName": "releasedate",
              "lessThanOperatorName": "releasedbefore",
              "greaterThanOperatorName": "releasedafter"
            }
          }
        }
      ]
    }
  ]
}

W poprzednim przykładzie:

  • Właściwość liczbowa runtime odnosi się do długości filmu. W tej usłudze ustawiono runtimelessthan i runtimegreaterthan.
  • Właściwość daty releaseDate odnosi się do daty premiery filmu w teatry. Dla tej usługi ustawiono zasady releasedbefore i releasedafter.

Te ustawienia umożliwiają Cloud Search interpretowanie zapytań:

  • Zakładając, że rok to 2019, wyrażenie „filmy, które miały miejsce w tym roku” jest interpretowane jako objecttype: movies releasedafter:2019-1-1 releasedbefore:2019-12-31
  • Zakładając, że tydzień to trzeci tydzień marca, „filmy opublikowane w zeszłym tygodniu” to zinterpretowane jako objecttype: movies releasedafter:2019-3-10 releasedbefore:2019-3-16
  • „filmy z czasem działania krótszym niż 90” są interpretowane jako objjecttype: movies runtimelessthan:90.
  • Zakładając, że jest to 2019 rok, „filmy, które pojawiły się w tym roku, mają ponad 120” jest interpretowane jako releasedafter:2019-1-1 releasedbefore:2019-12-31 objecttype:movies runtimegreaterthan:120.
  • „sortowanie filmów według daty premiery” spowoduje filtrowanie według obiektu typu: filmy prezentowane wyniki zostałyby posortowane według daty opublikowania z domyślną kolejnością sortowania rosnąco.

Włącz interpretację zarezerwowanego operatora

Możesz też używać wbudowanych wbudowanych zasobów reklamowych type, before, after i objecttype z operatorów, aby poprawić interpretację zapytań. Podczas indeksowania dokumentu wykonaj :

  1. Wypełnij pole updateTime w kolumnie ItemMetadata aby używać operatorów before i after. Te ustawienia umożliwiają Cloud Search interpretację tych zapytań:

    • „Filmy z zeszłego tygodnia” zawierają listę wszystkich filmów zaktualizowanych w indeksie z poprzedniego tygodnia.
    • Wyrażenie „movies przed styczniem 2019 roku” zawiera listę wszystkich filmów, które zostały zindeksowane przed Styczeń 2019 r.
  2. Wypełnij pole mimeType w ItemMetadata, aby używać automatycznego wykrywania typu. Zapytanie „filmy akcji” zwróci listę wszystkich dokumentów dotyczących filmów akcji z MIME. typ: application/mp4, application/mpeg4, application/x-shockwave-flash, video/ i application/vnd.google-apps.video.

Ograniczenia interpretacji zapytań

Funkcja interpretacji zapytań ma następujące ograniczenia.

  • Interpretacja zapytań działa tylko w przypadku tych list kontroli dostępu źródła danych:
    • Wszystkie dokumenty są publiczne w domenie (każdy w domenie ma do nich dostęp).
    • Wszystkie dokumenty są publiczne źródła danych (każdy, kto ma dostęp do źródła danych) ACL).
    • Większość dokumentów w źródle danych ma taką samą listę kontroli dostępu (wszystkie dokumenty) dziedziczenia listy kontroli dostępu z tego samego elementu kontenera) bez zdefiniowanych dodatkowych czytelników.
  • Jeśli kilka operatorów schematu ma tę samą wartość, interpretacja wartości ta wartość do intencji operatora dla zapytania zależy od ogólnego poziomu ufności zwracany przez system interpretacji zapytań. Załóżmy na przykład, że mają właściwości priority i severity z takimi samymi nazwami operatorów zdefiniowane w schemacie. Załóżmy, że oba operatory mogą mieć wartości 0, 1, 2 lub 3. W tym przykładzie: „0” może odnosić się do wartości operatora odpowiadającego priority lub severity. Wartości te są niejednoznaczne, a poziom ufności to obniżysz się.
  • Domyślnie interpretacja zapytań w Cloud Search zmniejsza wielkość liter w polu podczas interpretacji zapytania, z wyjątkiem operatorów tekstowych zdefiniowanych za pomocą funkcji exactMatchWithOperator.
  • Operator source nie jest obsługiwany w zapytaniach.
  • Zapytania, które łączą hasła oparte na operatorach i bezpłatne hasła tekstowe, nie są interpretowany. Na przykład zapytanie „waga przypadków o priorytecie p0:s0” nie będzie obsługiwane, ponieważ „przypadki o priorytecie p0” to bezpłatne hasło tekstowe, natomiast „severity:s0” to hasło oparte na operatorze.
  • Strategia interpretacji zapytań zawsze łączy zinterpretowane wyniki z Zwykłe (niezinterpretowane, ocenione według trafności). Nie wykonuje ona pełnej i zastępowanie stron z wynikami.