3

I want to query Stack Exchange by title including optional keywords (one of).

How can I query by OR operator?

For example:

/search/advanced?page=1&tagged=java&q=title:http OR class&order=desc&sort=votes&site=stackoverflow

1 Answer 1

3

The API currently does not support this, but then neither does the website itself.

The "How do I search?" help page says:

OR operator

To combine results from multiple tags, separate the tag names (enclosed in square brackets) with the word "or": [widgets] or [geegaws] returns questions tagged with either tag.

(Emphasis added)

Note that it only refers to tags in conjunction with the or operator. No facility is made for general or operation.

Here's a related feature request which you can/should upvote.


Example on the main site:

  1. Searching for [winzip] title:folder make gives 3 results (currently).
  2. Searching for [winzip] title:folder automate gives 1 result
  3. Searching for [winzip] title:folder make or automate gives no results, when it should give at least 3 (fail).
  4. [winzip] title:folder (make or automate), etc., also fail.

The API equivalents (one, two, three) give the same results.



Workarounds:

The Most timely/accurate workaround is: for each of the optional terms, search separately and then combine the results (stripping duplicate matches).

For example:

  1. Suppose your keywords were: class and foo.
  2. Search for [java] title:http class (only 3303 results, currently).
  3. Search for [java] title:http foo (81 results).
  4. Repeat for each additional keyword.
  5. So we have 3384 gross results, then remove any duplicate question_ids for the final (net) results

This is annoying and inefficient, but it works and is easy to automate.


Other possible workarounds include using a SEDE query, or using a Google search with the site: parameter.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .