Meer mogelijkheden in SOLR: subqueries in subqueries; en mogelijkheden bij fields

Geschreven door: op dinsdag 25 juni 2019

Leestijd:

Subqueries in subqueries

In SOLR kan je subqueries gebruiken om meer informatie op te halen bij een document. Dit is erg nuttig als je gekoppeld objecten wilt ophalen, zoals onderliggende pagina’s of afbeeldingen die op een pagina zichtbaar zijn.

Je kan ook subqueries in subqueries gebruikten. Door <naam>:[subquery] in de list met velden van een subquery te plaatsen, geef je aan dat ook hier een subquery moet komen. Zie bijvoorbeeld:

Als argumenten geef je op:

  1. images.fl":"image_id,meta_url:[subquery]”
  2. images.meta_url.fl":"*”
  3. images.meta_url.q":"*"
  4. images.meta_url.fq":"item_type:meta"

 

En als resultaat krijg je:

{
  "responseHeader":{
    "status":0,
    "QTime":2,
    "params":{
      "q":"*:*",
      "images.meta_url.fl":"*",
      "images.fq":"item_type:image",
      "images.meta_url.q":"*",
      "images.meta_url.fq":"item_type:meta",
      "fl":"page_id,images:[subquery]",
      "images.q":"{!terms f=page_id v=$row.page_id}",
      "images.fl":"*,image_id,meta_url:[subquery]",
      "fq":"item_type:page"}},
  "response":{"numFound":2,"start":0,"docs":[
      {
        "page_id":1,
        "images":{"numFound":0,"start":0,"docs":[]
        }},
      {
        "page_id":2,
        "images":{"numFound":1,"start":0,"docs":[
            {
              "id":"acbb7243-11c4-42f3-8021-6b4267600c76",
              "image_id":1,
              "item_type":"image",
              "page_id":2,
              "_version_":1637249453494632448,
              "meta_url":{"numFound":2,"start":0,"docs":[
                  {},
                  {}]
              }}]
        }}]
  }}

(In bovenstaand voorbeeld zijn de twee items onder meta_url leeg, omdat de select API van Solr Admin deze niet teruggeeft – wél in de query API.)

Alias voor filters

Met de parameter fl geef je aan welke velden je terug wilt krijgen. Je kan ze ook aliassen, door bijvoorbeeld te doen: fl=u:item_url:

{
  "responseHeader":{
    "status":0,
    "QTime":3,
    "params":{
      "q":"*:*",
      "fl":"u:item_url",
      "fq":"item_type:meta",
      "_":"1561477287406"}},
  "response":{"numFound":2,"start":0,"docs":[
      {
        "u":"/nl/hoi/"},
      {
        "u":"/nl/hoi-oud/"}]
  }}

Zie voor meer opties: https://lucene.apache.org/solr/guide/8_1/common-query-parameters.html#CommonQueryParameters-TheechoParamsParameter

Stats

Een handige functie is stats. Hiermee kan je van een veld extra gegevens terugkrijgen, die met name handig zijn voor bijvoorbeeld het automatisch opbouwen van filters. De volgende data krijg je terug: min, max, count, missing, sum, sumOfSquares, mean, stddev. Een aantal zijn handiger voor meer statistische doeleinden.

Een voorbeeld van het veld page_id (waarbij ik ook aangeef dat ik géén documenten terug wil krijgen, alleen statistieken, via rows = 0):

{
  "responseHeader":{
    "status":0,
    "QTime":1,
    "params":{
      "q":"*",
      "stats":"true",
      "start":"0",
      "fq":"item_type:*",
      "rows":"0",
      "_":"1561477287406",
      "stats.field":"page_id"}},
  "response":{"numFound":5,"start":0,"docs":[]
  },
  "stats":{
    "stats_fields":{
      "page_id":{
        "min":1.0,
        "max":2.0,
        "count":3,
        "missing":2,
        "sum":5.0,
        "sumOfSquares":9.0,
        "mean":1.6666666666666667,
        "stddev":0.5773502691896257}}}}

Zie ook: https://lucene.apache.org/solr/guide/6_6/the-stats-component.html.


Andere blogartikelen

  • Werkgeluk & werkgezondheid

    Geschreven door: op woensdag 22 januari 2020

    Werkgeluk en werkgezondheid, dit zijn termen die steeds meer in de media verschijnen. De essentie van deze termen is het in dienst hebben van gelukkige medewerkers. Medewerkers die zowel geestelijk al ...

    Bekijk het artikel »
  • Tabellen in HTML

    Geschreven door: op maandag 30 december 2019

    Met UL, OL en LI maak je opsommingen. Met DL, DT en DD maak je lijsten van definities. Naast opsommingen en definities is er ook nog tabulaire data: gegevens die in een tabel staan, waarbij je rijen h ...

    Bekijk het artikel »
  • SQL en het gebruik van For XML: Explicit en Path

    Geschreven door: op maandag 30 december 2019

    In mijn vorige blog hebben we For XML Raw en For XML Auto besproken. In deze blog zullen we For XML Explicit en For XML Path doornemen. Hieronder eerst wat uitleg over beide:EXPLICIT: Met ...

    Bekijk het artikel »
Bel 072 5345 888
Meer dan 40 bedrijven vertrouwen op ons
Onze Middelen en Technologieën
microsoft silver partner
Adobe partner
fd-gazellen-2018.jpg
Google analytics
partners-logo.jpg
Op de hoogte blijven?

Meld u aan voor de gratis nieuwsbrief om op de hoogte te blijven van onze activiteiten