anchor.diff:  [source,java]
   ----
   
  -public class CouchbaseProducer {
  +public class SolrProducer {
   
   
       @Produces
  -    public CouchbaseDocumentCollectionManager getManager() {
  +    public SolrDocumentCollectionManager getManager() {
           CouchbaseDocumentCollectionManager manager = ...;
           return manager;
       }
   
  -    @Produces
  -    public CouchbaseDocumentCollectionManagerAsync getManagerAsync() {
  -        CouchbaseDocumentCollectionManagerAsync managerAsync = ...;
  -        return managerAsync;
  -    }
   }
   
   
   ----
   
   
  -== CouchbaseRepository
  +== SolrRepository
   
  -CouchbaseRepository is an extension of Repository that allows using N1QL annotation that executes N1QL.
  +SolrRepository is an extension of Repository that allows using Solr query annotation that executes Solr query.
   
   
   [source,java]
   ----
  -    interface PersonRepository extends CouchbaseRepository<Person, String> {
  +    interface PersonRepository extends SolrRepository<Person, String> {
   
  -        @N1QL("select * from Person")
  +        @Solr("select * from Person")
           List<Person> findAll();
   
  -        @N1QL("select * from Person where name = $name")
  +        @Solr("select * from Person where name = $name")
           List<Person> findByName(@Param("name") String name);
       }
   ----
   
  -== CouchbaseRepositoryAsync
   
  -CouchbaseRepositoryAsync is an extension of RepositoryAsync that allows using N1QL annotation that executes N1QL.
   
  +== SolrTemplate
  +
  +SolrTemplate is a specialization of Document Template that allows to execute Solr query.
   
   [source,java]
   ----
  -    interface PersonAsyncRepository extends CouchbaseRepositoryAsync<Person, String> {
  -
  -        @N1QL("select * from Person where name= $name")
  -        void queryName(@Param("name") String name);
  -
  -        @N1QL("select * from Person where name= $name")
  -        void queryName(@Param("name") String name, Consumer<List<Person>> callBack);
  -    }
  +        List<Person> people = template.solr("age:@age AND type:@type AND _entity:@entity", params);
   ----
  -
  -
  -== CouchbaseTemplate and CouchbaseTemplateAsync
  -
  -CouchbaseTemplate is a specialization of Document Template that allows using N1QL both synchronous and asynchronous.
  -
  -[source,java]
  -----
  -        List<Person> people = template.n1qlQuery("select * from Person where name = $name", params);
  -
  -        MatchQuery match = SearchQuery.match("Ada");
  -        SearchQuery query = new SearchQuery("index-person", match);
  -        List<Person> resultl = template.search(query);
  -
  -        String query = "select * from Person where name = ?";
  -        Consumer<List<Person>> callBack = p -> {
  -        };
  -        JsonObject params = JsonObject.create().put("name", "Ada");
  -        templateAsync.n1qlQuery(query, params, callBack);
  -
  -----
  
positive.code: = Couchbase-extension
  
  image::https://jnosql.github.io/img/logos/couchbase.svg[Couchbase Project,align="center"]
  
  
  Couchbase extension has implementations to use specific behavior that is beyond the API such as N1QL.
  
  
  == Set dependency
  
negative.code: 
    <dependency>
       <groupId>org.jnosql.artemis</groupId>
       <artifactId>solr-extension</artifactId>
       <version>${jnosql.version}</version>
    </dependency>
  ----
  