nestjs-solr
TypeScript icon, indicating that this package has built-in type declarations

1.0.2 • Public • Published

nestjs-solr

Description

Solr module for Nestjs.

Installation

npm install nestjs-solr

Usage

Register SolrModule:

import { SolrModule } from 'nest-solr';

@Module({
  imports: [
    SolrModule.register({
      host: 'localhost',
      port: '8983',
      secure: false,
      core: 'mycore',
    }),
  ],
})
export class AppModule {}

Inject SolrService:

import { SolrService } from 'nest-solr';

@Injectable()
export class SearchService {
  constructor(private readonly solrService: SolrService) {}
}

Options for Basic Authentication combined with a self-signed certificate (TLS)

import { SolrModule } from 'nest-solr';

@Module({
  imports: [
    SolrModule.register({
      host: 'localhost',
      port: '8983',
      secure: true,
      tls: {
        ca: [fs.readFileSync('solr-ssl.pem')],
      },
      auth: {
        basic: {
          username: 'solr',
          password: 'SolrRocks',
        },
      },
      core: 'mycore',
    }),
  ],
})
export class AppModule {}

***(See more Securing Solr)

Async options

@Module({
  imports: [
    SolrModule.registerAsync({
      imports: [ConfigModule],
      useFactory: async (configService: ConfigService) => ({
        host: configService.get('SOLR_HOST'),
        port: configService.get('SOLR_PORT'),
        secure: configService.get('SOLR_SECURE'),
        core: 'mycore',
      }),
      inject: [ConfigService],
    }),
  ],
})

Examples

// Add a new document
const obj = await this.solrService.add({ id : 12, title_t : 'Hello', status: '1' });
console.log('Solr response:', obj);

// Search
const solrQuery = this.solrService
  .query()
  .q({ title_t: 'Hello' })
  .matchFilter('status', '1') //the fq (Filter Query)
  .fl(['title_t']) //the fl (field List)
  .start(0) //the offset where the set of returned documents should begin
  .rows(10) //the maximum number of documents returned
;
const ret: SearchResponse<any> = await this.solrService.search(solrQuery);
console.log('Solr response:', obj);

// Delete all documents
await this.solrService.deleteAll();

API Spec

The SolrService wraps the Solr client from the lbdremy/solr-node-client library. The SolrModule.register() takes options object as an argument to create the client, read more here.

Solr Homepage: https://solr.apache.org/

License

Nestjs-Solr is MIT licensed.

Readme

Keywords

Package Sidebar

Install

npm i nestjs-solr

Weekly Downloads

30

Version

1.0.2

License

MIT

Unpacked Size

85.2 kB

Total Files

30

Last publish

Collaborators

  • dkduyanh