/search/howto
Type: /type/page
body: value: Some of these tips are demonstrated in [this instructional video](https://youtu.be/ki3ySbC1bHs).

 - [title:flammable][2] will find any books with "flammable" in the title field
 - [author:solnit][3] will find authors with "solnit" in their name
 - [subject:tennis rules][4] will find any books about "tennis" *AND* "rules"
 - [place:lisbon][5] will find books about Lisbon 
 - [person:rosa parks][6] will look for people with rosa *AND* parks in their name
 - [language:spa] [14] will find any books with at least one edition in Spanish (most other language codes use the first three letters of the language except for Japanese which uses `jpn` There is also `mul` for multiple languages and `und` for undetermined)
 - [publisher:harper][7] will looks for any books published by a publisher with "harper" in their name. (Publisher has never been a controlled field in the library world, so you can see we have a ton of variants of this famous publisher in the search facets.)
- `publish_year:[* TO 1800]` will find anything published before and up to the year 1800.

You can also blend them together:

 - [subject:travel place:istanbul][8] will look for books about travel in Istanbul.
- [subject:dogs subject:("Juvenile fiction" OR "Juvenile literature")](/search?q=subject%3Adogs+subject%3A%28%22Juvenile+fiction%22+OR+%22Juvenile+literature%22%29&mode=everything) will look for children's books about dogs.

Or use date ranges (there's no UI for this yet):

 - <a href="/search?q=first_publish_year%3A[1200+TO+1400]&sort=new">first_publish_year:[1200 TO 1400]</a> will show you all the books published between 1200 & 1400 .

You can also search the special field that has everything dumped into it without any [stemming][9]:

 - <a href="/search?q=title_suggest%3A%22vitamin+a%22">title_suggest:"vitamin a"</a>

Other interesting searches:

- <a href="/search?q=number_of_pages%3A[*+TO+400]+subject%3Abiography">number_of_pages:[400 TO *] subject:biography</a> - Find biographies longer than 400 pages
- <a href="/search?q=subject%3Ahorror+AND+edition_count%3A1">subject:horror AND edition_count:1</a> - Find horror works with exactly 1 edition
- <a href="/search?q=subject%3Ahorror+AND+NOT+author_key%3A*">subject:horror AND NOT author_key:*</a> - Find horror works without an author



<a id="reading-logs-ratings"></a>

### Reading Logs, Ratings

You can also filter books by how often they appear on reading logs, or their ratings.

* [readinglog_count:&#91;100 TO &#42;&#93;](/search?q=readinglog_count%3A%5B100+TO+%2A%5D) will find books added by more than 100 patrons to reading logs. The `readinglog_count` field is the sum of the Want to Read, Currently Reading, and Already Read reading log shelves.
* [ratings_count:&#91;100 TO &#42;&#93;](/search?q=ratings_count%3A%5B100+TO+%2A%5D) will find books that have been rated more than 100 times.


<a id="classifications"></a>

### Classifications

You can also search by classification; this supports both Dewey Decimal and Library of Congress Classifications.

- Dewey Decimal Classification (DDC): See the [index of DDC classes](https://openlibrary.org/classifications/ddc/list)
   - [ddc:200&#42;](/search?q=ddc%3A200%2A) - matches e.g. `200`, `200.25`, `200.21 B`, etc.
   - [ddc:2&#42;](/search?q=ddc%3A2%2A) - matches e.g. `200`, `234`, `200.25`, etc. It does *not* match e.g. `002.5`
   - [ddc:&#91;150 TO 160&#93;](/search?q=ddc%3A%5B150 TO 160%5D) - (inclusive) matches e.g. `150`, `150.5`, `155` `160`, `160.51`, etc.
- Library of Congress Classification (LCC): See the [index of LCC classes](https://openlibrary.org/classifications/lcc/list)
   - [lcc:A&#42;](/search?q=lcc%3AA%2A) - matches e.g. `A123`, `AC123.5C12`, `A`, etc.
   - [lcc:B--&#42;](/search?q=lcc%3AB--%2A) - matches e.g. `B123`, `B3`, `B`, etc. It does *not* match e.g. `BC123`
   - [lcc:&#91;B TO C&#93;](/search?q=lcc%3A%5BB TO C%5D) - (inclusive) matches e.g. `B`, `B123`, `C`, etc. It does *not* match e.g. `C1`


## [Author Search][10]

 - <a href="/search/authors?q=birth_date%3A1973">birth_date:1973</a> will find any authors born in 1973

## [Subject Search][12]

There are multiple ways to search for books by a subject. The primary way is to use the `subject:` field which will do a fuzzy search for any books with subjects containing your search (e.g. `subject:happy` would match a subject of "happy feet"). This is also the case for `place`, `time`, and `person`.

An exact subject match can be performed using the `subject_key:` field. Presently, this value needs to be normalized such that spaces and special characters like `/` become underscores and the entire term becomes lowercased. For instance (a subject like "Metropolitan Museum of Art (New York, N.Y.)" becomes `metropolitan_museum_of_art_(new_york_n.y.)`). Here's the [code behind the scenes](https://github.com/internetarchive/openlibrary/blob/9ba92942806d20707dc088dfe596f98f554e1381/openlibrary/solr/update_work.py#L152-L160) for those who need more details. Note that `_key` can be added to `place`, `time`, and `person` to achieve the same exact matching capabilities.

 - [place:rome][13] will find you subjects about Rome that relate to the city; the *place*. Other types are time & person.

To do a negative search on Open Library, you can use the -subject_key operator. For example, to find all the books that show up for the word "solr" that don't have the subject "Apache Solr", you would use the following search query:

https://openlibrary.org/search?q=solr+-subject_key%3A%22apache_solr%22&mode=everything

Note that the subject key is the subject name with some normalization applied (lower case, spaces converted to underscores).

Here is an example of a negative search in action:

https://openlibrary.org/search?q=machine+learning+-subject_key%3A%22python%22&mode=everything

This search will return all the books about machine learning that do not have the subject "Python".

Negative searches can be useful for finding books on a specific topic that are not limited to a particular programming language or framework. They can also be used to find books that are more general in nature.

Perform an exact search for subject using the `subject_key` field, e.g:
subject_key:fantasy

## Search API

Are you interested in getting back JSON data? Just change `/search?` to `/search.json?` in your url! [Learn more about the Open Library Search API](/dev/docs/api/search).

## Filter by Availability

One may use the `ebook_access` field to filter for books that are readable, whose values are `no_ebook`, `printdisabled` only, `borrowable`, and `public`.

`ebook_access:no_ebook AND -ia:*` will let you search a range spanning anything borrowable or public.

If you're interested in finding highly requested books that the Internet Archive doesn't have:

`ebook_access:no_ebook AND -ia:* AND readinglog_count:[25 TO *]`

You can try it [here](https://openlibrary.org/search?mode=everything&q=ebook_access%3Ano_ebook+AND+-ia%3A%2A+AND+readinglog_count%3A%5B25+TO+%2A%5D&sort=readinglog)

## FAQs

Q: Can I limit my search to books with a single word title? For example, books with the title "hands"

A: It is not possible to do this currently but you could try excluding some words from the title and using alphabetical search (see this [alphabetical search issue](https://github.com/internetarchive/openlibrary/issues/2796)) like [this](https://openlibrary.org/search?language=eng&page=83&sort=title&q=title%3Ahands+-title%3Aa+-title%3Athe+-title%3Aand+-title%3Aan+-title%3Ain+-title%3Aon+-title%3Ato+-title%3Afor+-title%3Abook+-title%3Aoff+-title%3Aup+-title%3Aover+-title%3Aof+-title%3Aall+-title%3Apuppet+-title%3Aher+-title%3Atools+-title%3Abare+-title%3Abasic&mode=everything).



  [2]: /search?title=flammable
  [3]: /search?author=solnit
  [4]: /search?subject=tennis+rules
  [5]: /search?place=lisbon
  [6]: /search?person=rosa+parks
  [7]: /search?publisher=harper
  [8]: /search?place=istanbul&subject=travel
  [9]: http://en.wikipedia.org/wiki/Stemming
  [10]: /search/authors
  [11]: /search/authors?q=birth_date:1973
  [12]: /search/subjects
  [13]: /search/subjects?q=place%3Arome
  [14]: https://openlibrary.org/search?q=language%3Aspa
title: Open Library Search Tips
m: edit