Adapted from Steve Jurvetson (CC BY 2.0) |
Attentive reader Peggy K wishes for a way to make such complex blog searches as "all my posts about Twitter that are NOT about Elon Musk."
(My hypothetical example, not hers.)
Seek no further.
Blogger, the database
Compound searches like "All my posts that are about both Twitter AND Facebook" are also possible if you have labeled posts accordingly.
"All my posts that are about either Twitter OR Facebook (or both)" is a little fussier, but also doable.
Why NOT
Image: Kismalac (public domain) |
B excluding A |
You are actually modifying an AND search. NOT will not work on its own.
Furthermore, the AND search must take the complex form
myblog.blogspot.com/search/?q=label:label1+label:label2
not the more straightforward label-search AND I described in "Blogger database superpowers."
On this blog, this url
too-clever-by-half.blogspot.com/search/?q=label:feeds+label:"things that
changed"
finds all posts about feeds that are also about things that changed. It is the basic logical AND search. (The quotes are necessary if the label has any spaces in it, otherwise not.)
Where NOT
The result is a page of posts about feeds, except if the post is also labeled "things that changed"—those posts are excluded.
You must use "AND NOT." "NOT" alone will not work.
More syntax
too-clever-by-half.blogspot.com/search/?q=-label:feeds+label:"things that changed"
to find all posts about things that changed that are not also about feeds.
Search for text
label:
identifier.
Note that text searches do not also search labels.
For a search to find, say, all the posts that are not about Elon Musk, you must search for "NOT Elon" AND something that is found in every post. That might be a space or (in the English language anyway) the word "a."
Why: there must be a search term you do find, that defines the universe of posts from which Elon Musk is excluded.
Link to it
A page they produce updates itself automatically based on labels that you assign and posts that you publish. That is the database superpower.
The link you build to that search page can shared with your readers.
You can build similarly complex feeds using AND, OR, and NOT.
Links
- Your blog is a database
- Logical AND
- Logical OR
- Complex feeds using AND, OR, and NOT
- Peggy K's awesome blog
Thank you Adam! That's more complicated than I was hoping for, but if it works, it works.
ReplyDeleteMy feeling is that if this is genuinely useful, the difficulty in building the link correctly is trivial versus being able to direct readers to the search page in perpetuity.
DeleteI'm not sure what the use case is, though.
Actually, I used this on my apple blog earlier this year. So maybe there is a use case, though an obscure one.
Delete(How: a page of 2023 apple reviews that did not merit any stars in my apple-rating system.
(It only makes sense in context, as I linked to it from a regular blog post.)
So, useful to show a set of posts that is partially defined by excluding some labels.
Abba, you are very kind.
ReplyDeleteBest wishes for your blog.
I don't know if you've posted about this already but in case you haven't, there is a way to search for something in posts of a particular label only.
ReplyDeleteFor example, you have a blog about cars and have set labels for each car company, say, Mercedes, Toyota, Tata, Suzuki, etc. And you want to search for a red car in Toyota only.
Now, in the search box on the Blogger blog if you search for red cars, then it will return results for entire site, that is which will include results for all labels. That is you will enter following in search box to look for red cars
- - - -
red cars
- - - -
What the above built in search of Blogger does is to look for the text red cars in all the blog posts.
Now, coming to the search only for particular label trick,
But you want to search for red car in Toyota only. This can be achieved by using the following in the search box
- - - -
label:"Toyota" red cars
- - - -
The above query will return search results for search term red cars under label Toyota only.
After "Label Name" give one space and then enter your search term, something similar to a site search you do in Google. Search term can be a word or a phrase, as usual.
Note: Good practice to use "quotes" for all labels, as you have noted above for labels with a space in between two words. Also note that in case you use capitalisation in label names then the same capitalisation has to used while using label:"Label Name" as the label names are case sensitive in Blogger. That is, of your label name is Toyota, then you have to use "Toyota" and if it is toyota then you have to use "toyota".
The search term that follows it does not need capitalisation and will work anyway like any regular search term will.
This works for me. Hopefully you and your readers may find this useful too.
Try it out for searching different things in different labels and then compare results of a usual search done without the label: operator in search box.
...
Regards,
Pradeep
Thank you, @Pradeep! I was not aware one could use the "label" parameter like that in the search box. Using so produces a search url of the "?q=" variety.
DeleteAs Pradeep notes, label names are case sensitive in search.
Nice work. This is a great way to filter feed content from a Blogger blog.
ReplyDeleteI'm using something like this: https://sample.blogspot.com/search?by-date=true&q=-term1+-term2+-term3+-term4 to exclude posts with those keywords.
Can turn this into an RSS feed then:
https://sample.blogspot.com/search?by-date=true&q=term1+-term2+-term3+-term4