2024-02-06 12:41:28 +01:00
The index service is a partitioned service that knows which document contains which keywords.
2023-03-04 14:00:46 +01:00
2023-03-25 16:32:10 +01:00
![image ](../../../doc/diagram/index-service-map.svg )
2023-03-22 17:01:34 +01:00
2024-02-06 12:41:28 +01:00
It is the service that most directly executes a search query. It does this by
evaluating a low-level query, and then using the index to find the documents
that match the query, finally ranking the results and picking the best matches.
2023-03-04 14:00:46 +01:00
## Central Classes
* [IndexService ](src/main/java/nu/marginalia/index/IndexService.java ) is the REST entry point that the internal API talks to.
* [IndexQueryService ](src/main/java/nu/marginalia/index/svc/IndexQueryService.java ) executes queries.
* [SearchIndex ](src/main/java/nu/marginalia/index/index/SearchIndex.java ) owns the state of the index and helps with building a query strategy from parameters.
2023-03-05 19:16:08 +01:00
* [IndexResultValuator ](src/main/java/nu/marginalia/index/results/IndexResultValuator.java ) determines the best results.
## See Also
2023-03-12 10:50:31 +01:00
The index service relies heavily on the primitives in [features-index ](../../features-index ):
* [features-index/index-forward ](../../features-index/index-forward/ )
* [features-index/index-reverse ](../../features-index/index-reverse/ )
2023-03-22 17:01:34 +01:00
* [features-index/index-query ](../../features-index/index-query )