hey guys, how can i get the attributes specified i...
# community-help
k
hey guys, how can i get the attributes specified in include_fields in the response? there are 2 collections (shows and performances) where performances has a field called "show" referenced to "shows.title" but the query below doesn't return any of the fields. I've also tried with the nested array strategy as well this is my search query
collections/shows/search/?q=*&include_fields=$performances(city)&query_by=title
j
CC: @Harpreet Sangar
k
@Harpreet Sangar just including the schemas for the collections below for the referenced fields
Copy code
**show schema
        {
            "facet": false,
            "index": true,
            "infix": false,
            "locale": "",
            "name": "title",
            "optional": false,
            "sort": false,
            "stem": false,
            "store": true,
            "type": "string"
        },
Copy code
**performance schema
        {
            "async_reference": false,
            "facet": false,
            "index": true,
            "infix": false,
            "locale": "",
            "name": "show",
            "optional": false,
            "reference": "shows.title",
            "sort": false,
            "stem": false,
            "store": true,
            "type": "string"
        }
search query
Copy code
/collections/shows/documents/search/?q=*&include_fields=$performances(city)&query_by=title
@Harpreet Sangar @Jason Bosco any luck on the above by any chance?
h
Hi @Kenn Since you're querying the collection that doesn't have declared the reference field, you'll have to specify join using
filter_by
. So adding
filter_by=$performances(id:*)
should help.
k
@Harpreet Sangar thanks for getting back, hmm it doesn't seem to be working - it returns a message saying 404 not found
h
Can you share the query?
k
Copy code
/collections/shows/documents/?q=*&filter_by=$performances(id:=0)&include_fields=$performances(city)
h
It's missing
search
Copy code
/collections/shows/documents/search?q=*&filter_by=$performances(id:=0)&include_fields=$performances(city)
k
sorry, i put it in after. it's returning
message": "Failed to join on performances: No reference field found.
f
Could you post the details of both collections? There seems to be a missing field called perfomances
h
Also, what's your Typesense version?
Is it possible your collection name is
performance
?
Copy code
**performance schema
k
@Harpreet Sangar running 27.0 and nope its called performances @Fanis Tharropoulos
Copy code
{
  "created_at": 1734025298,
  "default_sorting_field": "",
  "enable_nested_fields": true,
  "fields": [
    {
      "facet": true,
      "index": true,
      "infix": false,
      "locale": "",
      "name": "audio",
      "optional": false,
      "sort": true,
      "stem": false,
      "store": true,
      "type": "bool"
    },
    {
      "facet": false,
      "index": true,
      "infix": false,
      "locale": "",
      "name": "buyTickets",
      "optional": false,
      "sort": false,
      "stem": false,
      "store": true,
      "type": "object"
    },
    {
      "facet": true,
      "index": true,
      "infix": false,
      "locale": "",
      "name": "captioned",
      "optional": false,
      "sort": true,
      "stem": false,
      "store": true,
      "type": "bool"
    },
    {
      "facet": false,
      "index": true,
      "infix": false,
      "locale": "",
      "name": "embargoDate",
      "optional": false,
      "sort": false,
      "stem": false,
      "store": true,
      "type": "string"
    },
    {
      "facet": false,
      "index": true,
      "infix": false,
      "locale": "",
      "name": "firstPerformanceDate",
      "optional": false,
      "sort": false,
      "stem": false,
      "store": true,
      "type": "string"
    },
    {
      "facet": false,
      "index": true,
      "infix": false,
      "locale": "",
      "name": "forcePostponedOrCanceled",
      "optional": false,
      "sort": false,
      "stem": false,
      "store": true,
      "type": "string"
    },
    {
      "facet": false,
      "index": true,
      "infix": false,
      "locale": "",
      "name": "genres",
      "optional": false,
      "sort": false,
      "stem": false,
      "store": true,
      "type": "string"
    },
    {
      "facet": false,
      "index": true,
      "infix": false,
      "locale": "",
      "name": "onSaleDates",
      "optional": false,
      "sort": false,
      "stem": false,
      "store": true,
      "type": "object"
    },
    {
      "facet": true,
      "index": true,
      "infix": false,
      "locale": "",
      "name": "relaxed",
      "optional": false,
      "sort": true,
      "stem": false,
      "store": true,
      "type": "bool"
    },
    {
      "facet": false,
      "index": true,
      "infix": false,
      "locale": "",
      "name": "showCardImage",
      "optional": false,
      "sort": false,
      "stem": false,
      "store": true,
      "type": "string"
    },
    {
      "facet": true,
      "index": true,
      "infix": false,
      "locale": "",
      "name": "signed",
      "optional": false,
      "sort": true,
      "stem": false,
      "store": true,
      "type": "bool"
    },
    {
      "facet": false,
      "index": true,
      "infix": false,
      "locale": "",
      "name": "slug",
      "optional": false,
      "sort": false,
      "stem": false,
      "store": true,
      "type": "string"
    },
    {
      "facet": false,
      "index": true,
      "infix": false,
      "locale": "",
      "name": "subTitle",
      "optional": false,
      "sort": false,
      "stem": false,
      "store": true,
      "type": "string"
    },
    {
      "facet": false,
      "index": true,
      "infix": false,
      "locale": "",
      "name": "title",
      "optional": false,
      "sort": false,
      "stem": false,
      "store": true,
      "type": "string"
    },
    {
      "facet": false,
      "index": true,
      "infix": false,
      "locale": "",
      "name": "umbracoSlug",
      "optional": false,
      "sort": false,
      "stem": false,
      "store": true,
      "type": "string"
    },
    {
      "facet": false,
      "index": true,
      "infix": false,
      "locale": "",
      "name": "venue",
      "optional": false,
      "sort": false,
      "stem": false,
      "store": true,
      "type": "object"
    },
    {
      "facet": false,
      "index": true,
      "infix": false,
      "locale": "",
      "name": "venue.slug",
      "optional": true,
      "sort": false,
      "stem": false,
      "store": true,
      "type": "string"
    },
    {
      "facet": false,
      "index": true,
      "infix": false,
      "locale": "",
      "name": "onSaleDates.onSaleDate",
      "optional": true,
      "sort": false,
      "stem": false,
      "store": true,
      "type": "string"
    },
    {
      "facet": false,
      "index": true,
      "infix": false,
      "locale": "",
      "name": "venue.name",
      "optional": true,
      "sort": false,
      "stem": false,
      "store": true,
      "type": "string"
    },
    {
      "facet": false,
      "index": true,
      "infix": false,
      "locale": "",
      "name": "onSaleDates.onSaleType",
      "optional": true,
      "sort": false,
      "stem": false,
      "store": true,
      "type": "string"
    },
    {
      "facet": false,
      "index": true,
      "infix": false,
      "locale": "",
      "name": "onSaleDates.hideDateAndTime",
      "optional": true,
      "sort": true,
      "stem": false,
      "store": true,
      "type": "bool"
    },
    {
      "facet": false,
      "index": true,
      "infix": false,
      "locale": "",
      "name": "buyTickets.url",
      "optional": true,
      "sort": false,
      "stem": false,
      "store": true,
      "type": "string"
    },
    {
      "facet": false,
      "index": true,
      "infix": false,
      "locale": "",
      "name": "onSaleDates.description",
      "optional": true,
      "sort": false,
      "stem": false,
      "store": true,
      "type": "string"
    },
    {
      "facet": false,
      "index": true,
      "infix": false,
      "locale": "",
      "name": "buyTickets.label",
      "optional": true,
      "sort": false,
      "stem": false,
      "store": true,
      "type": "string"
    }
  ],
  "name": "shows",
  "num_documents": 4,
  "symbols_to_index": [],
  "token_separators": [
    ">"
  ]
}
Copy code
{
  "created_at": 1734010393,
  "default_sorting_field": "",
  "enable_nested_fields": false,
  "fields": [
    {
      "facet": true,
      "index": true,
      "infix": false,
      "locale": "",
      "name": "city",
      "optional": false,
      "sort": false,
      "stem": false,
      "store": true,
      "type": "string"
    },
    {
      "facet": false,
      "index": true,
      "infix": false,
      "locale": "",
      "name": "doorsOpen",
      "optional": false,
      "sort": false,
      "stem": false,
      "store": true,
      "type": "string"
    },
    {
      "facet": false,
      "index": true,
      "infix": false,
      "locale": "",
      "name": "isSoldOut",
      "optional": false,
      "sort": true,
      "stem": false,
      "store": true,
      "type": "bool"
    },
    {
      "facet": false,
      "index": true,
      "infix": false,
      "locale": "",
      "name": "pricingDescription",
      "optional": false,
      "sort": false,
      "stem": false,
      "store": true,
      "type": "string"
    },
    {
      "facet": false,
      "index": true,
      "infix": false,
      "locale": "",
      "name": "salesPeriod",
      "optional": false,
      "sort": false,
      "stem": false,
      "store": true,
      "type": "string"
    },
    {
      "async_reference": false,
      "facet": false,
      "index": true,
      "infix": false,
      "locale": "",
      "name": "show",
      "optional": false,
      "reference": "shows.title",
      "sort": false,
      "stem": false,
      "store": true,
      "type": "string"
    },
    {
      "facet": false,
      "index": true,
      "infix": false,
      "locale": "",
      "name": "startTime",
      "optional": false,
      "sort": false,
      "stem": false,
      "store": true,
      "type": "string"
    },
    {
      "facet": false,
      "index": true,
      "infix": false,
      "locale": "",
      "name": "venue",
      "optional": false,
      "sort": false,
      "stem": false,
      "store": true,
      "type": "string"
    }
  ],
  "name": "performances",
  "num_documents": 2,
  "symbols_to_index": [],
  "token_separators": []
}
h
Can you try to restart your Typsense server once? This issue was present in the earliest version of Joins feature. You shouldn't be getting this message in v27.
If this doesn't work, please share the reproduction steps so I can debug this issue.
k
ahh restarting worked
🙌🏼 1
so just to confirm, querying the collection that does not have the reference field, i need the filter_by and querying the collection with the reference field, i don't need it
1
h
Yes.
querying the collection with the reference field, i don't need it
Unless you do want to filter the results based on some condition then you can specify
filter_by
as well.
🙌 1
k
sorry last question, if i wanted to add another filter_by alongside, would it be something like the below?
Copy code
filter_by = genres:[comedy] $performances(id:*)
h
You can specify
&&
And
||
Or based on your requirement for adding multiple conditions. https://typesense.org/docs/27.1/api/search.html#filter-parameters
🙌 1