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

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

dinsdag 25 juni 2019 ·Leestijd: 3 minuten
contacteer auteur:

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

B2B E-commerce
 Wakker worden!
Geschreven door
op dinsdag 28 juni 2022
Veel B2B-bedrijven in blijven hangen in; nauwelijks vindbare, verouderde B2B e-commerce websites met minimale conversiemogelijkheden en een betreurenswaardige gebruikerservaring. Zonde!
B2B Leadgeneratie: Alles wat je altijd al wilde weten!
Geschreven door
op maandag 27 juni 2022
B2B online leadgeneratie is het proces van het identificeren van de ideale klanten voor uw product of dienst, en hen vervolgens overhalen tot aankoop. Het is een essentiële activiteit voor B2B sales- en marketingteams.
Wat maakt een B2B webshop succesvol?
Geschreven door
op zondag 26 juni 2022
De opmars van de B2B webshop neemt toe. Regelmatig krijgen wij de vraag of er een groot verschil is tussen een consumentgerichte webshop en een puur B2B gedreven webshop. In deze blog leggen wij u uit hoe een B2B webshop succesvol kan zijn en worden.
Open Nieuwsbrief Inschrijving Footer

E-book

Zo wordt uw website een lead generator 
In 3 stappen uw website van visitekaartje naar salesfunnel

Download het E-book â€ș