


Этот проект направлен на изучение работы Solrnet в потреблении службы SOLR SELR в проектах. Чистый ядро.
После клона проекта и выполните шаги, описанные на этапе установки.
git clone https://github.com/AntonioFalcao/SolrDotnetSample.gitОкружающая среда необходима со следующими ресурсами:
Чтобы проверить эту функциональность:
dotnet --versionДля получения более подробной информации
dotnet --infoДля установки:
dotnet tool install --global dotnet-efЧтобы проверить эту функциональность:
dotnet-ef --versionЧтобы проверить эту функциональность:
docker --versionПри использовании контейнеризации мы практически можем предоставить необходимую инфраструктуру.
Первоначально мы будем использовать службу Solr для удовлетворения потребности в поисковой системе с помощью Compose ./solr-compose .
docker-compose -f solr-compose.yml up -d Стандартный индекс, называемый ядром Solr, определяется как my_core в entrypoint , а также стандартное отображение портов 8983:8983 :
services :
# comment for brevity
ports :
- " 8983:8983 "
entrypoint :
- solr-precreate
- my_core
# comment for brevity Определение полей в SOLR является важным шагом, чтобы гарантировать, что данные будут иметь такое же представление, желаемое моделью.
Есть два способа сделать это, один из них - это определить детали полей в Schema.xml, и другой способ заключается в том, чтобы сделать прямые звонки в API службы. Для второй альтернативы есть файл solr-add-fields.http, доступный в проекте:
POST http://localhost:8983/solr/my_core/schema
Content-Type: application/json
{
"add-field" :{
"name" : " Description " ,
"type" : " string " ,
"stored" : true
},
"add-field" :{
"name" : " Title " ,
"type" : " string " ,
"stored" : true
},
}
### comment for brevity После предоставления среды и настроить поля, мы можем сеять данные через шаги:
На этом этапе посева данных будет происходить в реляционном DB.
dotnet ef database update -s ./src/SolrDotnetSample.WebApi/ -p ./src/SolrDotnetSample.Repositories/Будут доступны два варианта, и
- Генерировать новые данные.
- Мигрировать реляционные данные.
docker build -t seed -f ./consoleApp.Dockerfile . && docker run -it seedЕдиные и интеграционные тесты могут быть выполнены с их командой:
dotnet test Чтобы выполнить тесты функционально, мы должны первоначально выполнить проект, чтобы сделать веб -службу доступным.
docker build -t webapi -f ./webApi.Dockerfile . && docker run -p 5000:5000 webapi Маршрутизация следует за стандартной
http://hostname:port/api/v{version}/controller
Чтобы сделать вызовы, вы можете использовать файл ./basic-api-call.http через расширение клиента REST, например:.
/api/v1/...использует реляционную базу данных.
/api/v2/...использует Solr
### V1 - Relational DB
GET http://localhost:5000/api/v1/posts
### V2 - NoSql DB
GET http://localhost:5000/api/v2/posts
### V1 - Relational DB
POST http://localhost:5000/api/v1/posts
Content-Type: application/json
{
"Description" : " Description " ,
"ExpiryDate" : " 2020-01-01 " ,
"IsActive" : true ,
"IsSold" : true ,
"PostDate" : " 2020-01-01 " ,
"Price" : 0 ,
"Title" : " Title "
}
### comment for brevity Подробная информация о беговой дорожке (CI/CD) доступна в действиях Project GitHub
Доступен скоро!
Мы используем SEMVER для управления версиями. Для доступных версий см. Теги в этом репозитории.
См. Также Список участников, которые участвовали в этом проекте.
Этот проект лицензирован по лицензии MIT - для получения подробной информации см.