Skip to content

codingblocks/SearchIndexer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Search Indexer

The idea is to have a simple console UI that can read in documents and export them to an index.

Each type of input or output should have it's own assembly.

Getting started

The easiest way to get started, is to fire up the example architecture. Check out the readme file in the "Examples" folder for more.

TODO

  • Lots, too much to name
  • Podcast lib is .net only (no core) and is missing the latest round of fields
  • Podcast Input Plugin is a mess
  • The divide shouldn't be between input and output, more like document provider and index services
  • Configurations specific to the plugin shouldn't be in the args
  • Shouldn't call these plugins, if they're bundled then they're just strategies!

Input Examples (aka Document Providers)

  • JSON file of podcasts (converts to documents for each episode)
  • Postgres query with conferences (each row is a document)

Output Examples (aka Indexers)

  • Azure Search
  • ElasticSearch

Settings that are specific to an input or output should (TODO, for example: security) be managed via configuration settings - not passed in via command line

Example usage:

(Note: first you should copy the .env.example to .env)

# information about the loading and indexer are done in configuration
dotnet ./App/bin/Debug/netcoreapp2.2/App.dll delete-index -e "http://localhost:19200" -n podcasts -u elastic -p test123
dotnet ./App/bin/Debug/netcoreapp2.2/App.dll create-index -e "http://localhost:19200" -n podcasts -f Examples\elastic-podcast-index-definition.json -u elastic -p test123
dotnet ./App/bin/Debug/netcoreapp2.2/App.dll index-exists -e "http://localhost:19200" -n podcasts -u elastic -p test123
dotnet ./App/bin/Debug/netcoreapp2.2/App.dll get-documents -f Examples\podcast-feeds.json -u elastic -p test123
dotnet ./App/bin/Debug/netcoreapp2.2/App.dll update-documents -f  Examples\podcast-feeds.json -e "http://localhost:19200" -n podcasts -u elastic -p test123

Adding a new command

  1. Create a new file for the command in App.Commands that impliments ICommand
  2. Add the bindings for the command in CommandRegistryExtensions.cs

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages