Sort based on number of 'all occurrences' a word is used in a single field. (i.e. respects multiple-occurrences)

I’m trying to get up to speed with Algolia and I’m struggling with a very simple all occurrence word search.

Currently, using just the Algolia WebUI, my test data always results in ‘words’ and ‘exact’ always equalling 1, thus items are always tied. I have simplified the search using just [exact, words, attribute, filters] for Ranking and sorting (rankingAndSorting).

My Indices test data:

[
  {
    "objectID":"three-cats",
    "body":"cat meows. cat stretches. cat sleeps."
  },
  {
    "objectID":"one-cat",
    "body":"cat is still asleep"
  },
  {
    "objectID":"two-cat-and-two-dog",
    "body":"dog barks at cat. cat runs from dog."
  },
  {
    "objectID":"one-dog",
    "body":"dog sleeps"
  },
  {
    "objectID":"three-dogs",
    "body":"dog woofs. dog chases tail. dog sleeps"
  }
]

Wanted search results

Have a search return items sorted by the number of times the search terms was found in a single Field.

search( "cat" ) // goal: [ "three-cats", "two-cat-and-two-dog", "one-cat" ]
search( "dog" ) // goal [ "three-dogs", "two-cat-and-two-dog", "one-dog" ]

The way I read the ranking of words is that the more words that are matched (e.g. cat AND dog) the higher the score, not the number of times a word is counted in a single result (I have found this in both the Algolia Dashboard and JavaScript search.

I’m no expert though.