activity stream sorting filtering added to regular sorting filtering of entities in modern drupal 10 search api
-
My self-answering posts in Drupal’s Search Slack channel:
Say i have a multipart field (only example in core i know of is say body:value and body:format) and i filter by one part, can i then sort by the corresponding part? 2 replies
mlncn 1 minute ago Pretty sure we will need to do something other than a multivalue, multipart field to get what we need. Here is the full context, trying to add activitystream style capabilities to a faceted search. So show “My recent activity” and have facets for entity type, bundle, and tag etc as usual but also be restricting what is shown to things i have interacted with by creating, editing, annotating (not (yet?) comments, don’t ask). If i created something a year ago and someone edited it today, i wouldn’t see that. But if something that was last edited a year ago (by anyone) but i edited an annotation on it today, that would show up. Was originally thinking we have a field with these three ‘subfields’:
-
activities:user
-
activities:description
-
activities:date I can filter to only show articles that have a user in activities, but i cannot then use the activities:date corresponding to that activities:user to do the sort, or the corresponding description to display.
mlncn < 1 minute ago On further thought, the above approach would never work. (Correct me if i’m wrong!) Activity stream needs to be its own base table / entity, because Search API is not going to want to show the entity i created, edited, and annotated three times separated by all the other activities anyway.
Zulip thread: sorting/filtering by most recent activity
mlncn: @wolcen what was your initial vision for this? I think we do want it on a field that we add to all content we want to filter that way. But then the field itself needs to be filtered… i think Drupal/Views/Search API/Solr can do that…
three-part multivalue field:
user (id), activity type (string), datetime
the user we care about won’t necessarily be in the 0th position of that multivalue field, is the part i need to test, but wondering if you had a cleverer plan, working from a good database join on up
wolcen: umm…
wolcen: the whole concept of “add a field” is confusing to me (damn Drupal) but I think I follow how that could work.
wolcen: and when you say multi-value field, is that from the concept of a Drupal custom field type that is merely a pre-defined container with three “actual” field values in it (i.e. a Drupal high-level struct, sort of)
mlncn:
multivalue Drupal triplet structure, each user, activity type, datetime set will exist multiple times on each piece of content
pretty sure we will need to do something other than a multivalue, multipart field.
Say we have a field with these three ‘subfields’:
-
activities:user
-
activities:description
-
activities:date
I can filter to only show articles that have a user in activities, but i cannot then use the activities:date corresponding to that activities:user to do the sort, or the corresponding description to display.
From Chris:
e.g. given:
nid type activities:user activities:description activities:date 1 blog 1 inserted 1/1/2024 1 blog 2 comment 1/2/2024 1 blog 1 updated 1/5/2024 2 blog 1 inserted 1/1/2024 2 blog 1 updated 1/5/2024 desired outputs
overall activity: admin inserted blog 1 on 1/1/2024 admin inserted blog 2 on 1/1/2024 user commented on blog 1 on 1/2/2024 admin updated blog 1 on 1/5/2024 admin updated 2 on 1/5/2024
or for a single user (admin): inserted blog 1 on 1/1/2024 inserted blog 2 on 1/1/2024 updated blog 1 on 1/5/2024 updated 2 on 1/5/2024
or for a single user (user): commented on blog 2 on 1/2/2024
-
tab dump
- activity stream sorting filtering added to regular sorting filtering of entities in modern drupal 10 search api · Public Raw Notes from Agaric
- Drupal facets search API use field ’label’ for boolean single checkbox · Public Raw Notes from Agaric
- drupal search api facets taxonomy term include parents · Public Raw Notes from Agaric
- always link content or taxonomy term in context of view modern drupal · Public Raw Notes from Agaric