You can easily query Solr’s repository with the Lucene APIs, if you know the path and lucene version of the index.
These are the dependencies you need:
core
libraryDependencies += "org.apache.lucene" % "lucene-core" % "7.2.0"
libraryDependencies += "org.apache.lucene" % "lucene-queryparser" % "7.2.0"
And the imports:
import org.apache.lucene.analysis.standard.StandardAnalyzer
import org.apache.lucene.index.DirectoryReader
import org.apache.lucene.queryparser.classic.MultiFieldQueryParser
import org.apache.lucene.search.{IndexSearcher, ScoreDoc}
import org.apache.lucene.store.SimpleFSDirectory
import scala.collection.JavaConverters._
Finally, code to query, and retrieve the titles of each result:
val indexLocation = "C:\\projects\\solr-7.0.0\\server\\solr\\talks\\data\\index"
    val indexPath = FileSystems.getDefault().getPath(indexLocation)
    val directory = new SimpleFSDirectory(indexPath)
    val reader =  DirectoryReader.open(directory)
    val searcher = new IndexSearcher(reader)
    val analyzer = new StandardAnalyzer()
    val qp = new MultiFieldQueryParser(
      Array[String]("title_s", "auto_transcript_txt_en"),
      analyzer,
      Map(
        "title_s" -> new java.lang.Float(2.0),
        "auto_transcript_txt_en" -> new java.lang.Float(1.0)
      ).asJava
    )
    val q = qp.parse("title_s: python OR auto_transcript_txt_en:python")
    val results = searcher.search(q, 1000)
    println("total: " + results.totalHits)
    results.scoreDocs.toList.map(
      (docMeta: ScoreDoc) => {
        val doc = reader.document(docMeta.doc)
        println(doc.getField("title_s").stringValue())
      }
    )