The code that follows can be simplified 

```scala
for {
        hit <- hits
        occurrence <- fromDocument(searcher.doc(hit.doc)).right.toOption
      } yield occurrence
```

:)