- SQL Express 2014 or later
- Visual Studio 2017 or later
- Docker (Optional) - Used to host ElasticSearch and RabbitMQ, which enable full-text search.
- The folder holding the bhl-us source code is referred to throughout this document as <BHLRoot>.
- These instructions assume that the databases will be named "BHL", "BHLImport", "BHLAuditArchive", and "IAAnalysis".
After downloading the bhl-us source code, do the following to get the web sites and utility applications running.
-
Open a Windows command prompt.
-
Make sure that the sqlcmd utility, which is part of the SQL Server client tools, is included in your path. More information can be found at http://technet.microsoft.com/en-us/library/ms162773.aspx.
-
Navigate to the <BHLRoot>\Database-BHL folder.
-
Run the BHLDBBuildScript.bat batch file. This will build the primary database.
Usage:
BHLDBBuildScript SERVERNAME DATABASENAME FULLTEXTCATALOGFILEPATH ISPRODUCTION DATAORSTRUCTURE
where
SERVERNAME is the name of the database server DATABASENAME is the name of the database. It is recommended that "BHL" be used as the database name. FULLTEXTCATALOGFILEPATH is the path in which to place the full-text catalog file. Use quotes around this value if the path contains spaces. ISPRODUCTION is true for a production database, and false for a development database. Auditing triggers are removed from development databases. DATAORSTRUCTURE is "structure" to build the empty database (no data), "data" to add data to an existing database, or "all" to build the structure and add the data.
Example:
BHLDBBuildScript localhost BHL "C:\Program Files\Microsoft SQL Server\MSSQL11.SQLEXPRESS\MSSQL\DATA" false all
-
In the new BHL database, create roles named db_executor and db_webuser.
USE [BHL]; CREATE ROLE db_executor; GRANT EXECUTE TO db_executor;
CREATE ROLE db_webuser; GRANT INSERT ON dbo.PDF TO db_webuser; GRANT INSERT ON dbo.PDFPage TO db_webuser; GRANT UPDATE ON dbo.Page TO db_webuser;
-
Navigate to the <BHLRoot>\Database-BHLImport folder.
-
Run the BHLImportDBBuildScript.bat batch file. This will build the database used as a staging area for new material.
Usage:
BHLImportDBBuildScript SERVERNAME DATABASENAME DATAORSTRUCTURE
SERVERNAME is the name of the database server DATABASENAME is the name of the database. It is recommended that "BHLImport" be used as the database name. DATAORSTRUCTURE is "structure" to build the empty database (no data), "data" to add data to an existing database, or "all" to build the structure and add the data.
Example:
BHLImportDBBuildScript localhost BHLImport all
-
In the new BHLImport database, create a role named db_webuser.
USE [BHLImport]; CREATE ROLE db_webuser; GRANT SELECT ON dbo.IAFile TO db_webuser; GRANT SELECT ON dbo.IAItem TO db_webuser;
-
Navigate to the <BHLRoot>\Database-BHLAuditArchive folder.
-
Run the BHLAuditArchiveDBBuildScript.bat batch file. This will build the auditing database.
Usage:
BHLAuditArchiveDBBuildScript SERVERNAME DATABASENAME
where
SERVERNAME is the name of the database server DATABASENAME is the name of the database. It is recommended that "BHLAuditArchive" be used as the database name.
Example:
BHLAuditArchiveDBBuildScript localhost BHLAuditArchive
-
Navigate to the <BHLRoot>\Database-IAAnalysis folder.
-
Run the IAAnalysisDBBuildScript.bat batch file. This will build the database used to ingest non-biodiversity-collection items from Internet Archive.
Usage:
IAAnalysisDBBuildScript SERVERNAME DATABASENAME DATAORSTRUCTURE
where
SERVERNAME is the name of the database server DATABASENAME is the name of the database. It is recommended that "IAAnalysis" be used as the database name. DATAORSTRUCTURE is "structure" to build the empty database (no data), "data" to add data to an existing database, or "all" to build the structure and add the data.
Example:
IAAnalysisDBBuildScript localhost IAAnalysis all
-
Create a new SQL Server login named BHLWebUser. Map it to a user named BHLWebUser in the new BHL database, and assign it to the "db_executor" and "db_webuser" database roles.
USE [master]; CREATE LOGIN [BHLWebUser] WITH PASSWORD=N'BHLWebUser';
USE [BHL]; CREATE USER [BHLWebUser] FOR LOGIN [BHLWebUser] WITH DEFAULT_SCHEMA=[dbo]; ALTER ROLE [db_executor] ADD MEMBER [BHLWebUser]; ALTER ROLE [db_webuser] ADD MEMBER [BHLWebUser];
-
Map the BHLWebUser login to a user named BHLWebUser in the new BHLImport database, and assign it to the "db_webuser" database role.
USE [BHLImport]; CREATE USER [BHLWebUser] FOR LOGIN [BHLWebUser] WITH DEFAULT_SCHEMA=[dbo]; ALTER ROLE [db_webuser] ADD MEMBER [BHLWebUser];
-
Create a new SQL Server login named BHLService. Map it to a user named BHLService in the BHL, BHLAuditArchive, BHLImport, and IAAnalysis databases. In each database, assign the new user to the "db_datareader", "db_datawriter", and "db_owner" database roles.
USE [master]; CREATE LOGIN [BHLService] WITH PASSWORD=N'BHLService';
USE [BHL]; CREATE USER [BHLService] FOR LOGIN [BHLService] WITH DEFAULT_SCHEMA=[dbo]; ALTER ROLE [db_datareader] ADD MEMBER [BHLService]; ALTER ROLE [db_datawriter] ADD MEMBER [BHLService]; ALTER ROLE [db_owner] ADD MEMBER [BHLService];
USE [BHLAuditArchive]; CREATE USER [BHLService] FOR LOGIN [BHLService] WITH DEFAULT_SCHEMA=[dbo]; ALTER ROLE [db_datareader] ADD MEMBER [BHLService]; ALTER ROLE [db_datawriter] ADD MEMBER [BHLService]; ALTER ROLE [db_owner] ADD MEMBER [BHLService];
USE [BHLImport]; CREATE USER [BHLService] FOR LOGIN [BHLService] WITH DEFAULT_SCHEMA=[dbo]; ALTER ROLE [db_datareader] ADD MEMBER [BHLService]; ALTER ROLE [db_datawriter] ADD MEMBER [BHLService]; ALTER ROLE [db_owner] ADD MEMBER [BHLService];
USE [IAAnalysis]; CREATE USER [BHLService] FOR LOGIN [BHLService] WITH DEFAULT_SCHEMA=[dbo]; ALTER ROLE [db_datareader] ADD MEMBER [BHLService]; ALTER ROLE [db_datawriter] ADD MEMBER [BHLService]; ALTER ROLE [db_owner] ADD MEMBER [BHLService];
The BHL web site uses ElasticSearch to implement many of its search capabilities. However, if ElasticSearch is not present, the web site will fall back to a SQL Server search implementation. The SQL Server search performs basic searches of catalog metadata. Full-text searches are disabled, faceting is not available, and the “search within a book” feature will not work. Therefore, for a full-featured BHL implementation, the instructions in this section should be followed. If a limited search is satisfactory, then this section, the “RabbitMQ” section, and the “Index Data in ElasticSearch” section can be skipped.
-
(If necessary) Download and install Docker from docker.com. As of January 2019, the product to install is called “Docker Desktop”.
-
Open a Windows command prompt.
-
Get the official ElasticSearch image.
docker pull docker.elastic.co/elasticsearch/elasticsearch:7.9.1
-
Start a new ElasticSearch docker container that will be accessible at http://localhost:9200.
docker run -d --name es791 -p 9200:9200 -e "http.host=0.0.0.0" -e "transport.host=127.0.0.1" docker.elastic.co/elasticsearch/elasticsearch:7.9.1
-
Locate the "elasticsearch.yml" file within the running Docker container. The following command should return something like "/usr/share/elasticsearch/config/elasticsearch.yml"
docker exec -it es791 find / -name "elasticsearch.yml"
-
Copy the elasticsearch.yml file from the container to the host.
docker cp es791:/usr/share/elasticsearch/config/elasticsearch.yml c:\elasticsearch.yml
-
On the host, use a text editor to disable Xpack security by adding the following line to the elasticsearch.yml file:
xpack.security.enabled: false
The file contents should now look something like this:
cluster.name: "docker-cluster" network.host: 0.0.0.0
# minimum_master_nodes need to be explicitly set when bound on a public IP # set to 1 to allow single node clusters # Details: elastic/elasticsearch#17288 discovery.zen.minimum_master_nodes: 1
xpack.security.enabled: false
-
Copy the edited elasticsearch.yml file from the host to the running Docker container.
docker cp c:\elasticsearch.yml es791:/usr/share/elasticsearch/config/elasticsearch.yml
-
Add the ICU analysis plug-in to ElasticSearch to add better support for Unicode characters, including Asian characters.
docker exec -it es791 /usr/share/elasticsearch/bin/elasticsearch-plugin install analysis-icu
-
Stop the running container.
docker stop es791
-
Restart the ElasticSearch container. Note that by using the name (es791) assigned to the container is Step 4, all of the other arguments we specified in Step 4 (-d -e -p ) are used by default.
docker start es791
-
Verify the operation of ElasticSearch by opening a browser and navigating to http://localhost:9200. You should get a response that looks something like this:
{ "name" : "90WsOOT", "cluster_name" : "docker-cluster", "cluster_uuid" : "Ok4_vavaTuSxn9qrsAGZwA", "version" : { "number" : "5.4.2", "build_hash" : "f9d9b74", "build_date" : "2017-02-24T17:26:45.835Z", "build_snapshot" : false, "lucene_version" : "6.4.1" }, "tagline" : "You Know, for Search" }
-
Create new indexes using curl or a comparable tool.
curl –X PUT http://localhost:9200/items -d @\ElasticSearch\items.json –H “Content-Type:application/json” curl –X PUT http://localhost:9200/catalog -d @\ElasticSearch\catalog.json –H “Content-Type:application/json” curl –X PUT http://localhost:9200/authors -d @\ElasticSearch\authors.json –H “Content-Type:application/json” curl –X PUT http://localhost:9200/keywords -d @\ElasticSearch\keywords.json –H “Content-Type:application/json” curl –X PUT http://localhost:9200/names -d @\ElasticSearch\names.json –H “Content-Type:application/json” curl –X PUT http://localhost:9200/pages -d @\ElasticSearch\pages.json –H “Content-Type:application/json”
-
Open a Windows command prompt.
-
Get the official RabbitMQ image
docker pull rabbitmq
-
Start a new ElasticSearch docker container that will be accessible at http://localhost:5672.
docker run -d --name rabbit373 --hostname my-rabbit -p 5672:5672 rabbitmq
(RECOMMENDED) To alternately include the RabbitMQ management console, which will be accessible at http://localhost:15672, use this instead:
docker run -d --name rabbit373 --hostname my-rabbit -p 5672:5672 -p 15672:15672 rabbitmq:management
-
the operation of RabbitMQ by opening a browser and navigating to http://localhost:5672. You should get a response that looks something like this:
AMQP
-
Verify the operation of the RabbitMQ management console by opening a browser and navigating to http://localhost:15672. Use guest/guest as the username/password.
NOTE: To supply a different username and password, change the command that creates a RabbitMQ container with the management console to the following:
docker run -d --name rabbit373mgmt --hostname my-rabbit -p 5672:5672 -p 15672:15672 -e RABBITMQ_DEFAULT_USER=user -e RABBITMQ_DEFAULT_PASS=password rabbitmq:management
- Make copies of the config files as indicated in the following list:
| Original File | Copy To |
|---|---|
| <BHLRoot>\BHLAdminWeb\Web.config.template | <BHLRoot>\BHLAdminWeb\Web.config |
| <BHLRoot>\BHLApiDALTest\App.config.template | <BHLRoot>\BHLApiDALTest\App.config |
| <BHLRoot>\BHLBioStorHarvest\app.config.template | <BHLRoot>\BHLBioStorHarvest\app.config |
| <BHLRoot>\BHLCoreDALTest\App.config.template | <BHLRoot>\BHLCoreDALTest\App.config |
| <BHLRoot>\BHLDOIService\app.config.template | <BHLRoot>\BHLDOIService\app.config |
| <BHLRoot>\BHLExportProcessor\App.config.template | <BHLRoot>\BHLExportProcessor\App.config |
| <BHLRoot>\BHLFileAccessRemotingUtilities\Remoting.config.template | <BHLRoot>\BHLFileAccessRemotingUtilities\Remoting.config |
| <BHLRoot>\BHLFlickrTagHarvest\app.config.template | <BHLRoot>\BHLFlickrTagHarvest\app.config |
| <BHLRoot>\BHLFlickrThumbGrab\app.config.template | <BHLRoot>\BHLFlickrThumbGrab\app.config |
| <BHLRoot>\BHLImportEFDataModel\App.Config.template | <BHLRoot>\BHLImportEFDataModel\App.Config |
| <BHLRoot>\BHLImportService\Web.config.template | <BHLRoot>\BHLImportService\Web.config |
| <BHLRoot>\BHLMETSUpload\app.config.template | <BHLRoot>\BHLMETSUpload\app.config |
| <BHLRoot>\BHLNameFileGenerator\app.config.template | <BHLRoot>\BHLNameFileGenerator\app.config |
| <BHLRoot>\BHLNameFileGenerator\Remoting.config.template | <BHLRoot>\BHLNameFileGenerator\Remoting.config |
| <BHLRoot>\BHLOAIHarvester\app.config.template | <BHLRoot>\BHLOAIHarvester\app.config |
| <BHLRoot>\BHLOCRRefresh\app.config.template | <BHLRoot>\BHLOCRRefresh\app.config |
| <BHLRoot>\BHLPageNameRefresh\app.config.template | <BHLRoot>\BHLPageNameRefresh\app.config |
| <BHLRoot>\BHLPDFGenerator\app.config.template | <BHLRoot>\BHLPDFGenerator\app.config |
| <BHLRoot>\BHLSearchIndexer\AppConfig.xml.template | <BHLRoot>\BHLSearchIndexer\AppConfig.xml |
| <BHLRoot>\BHLSearchIndexer\AppConfig.xml.template | <BHLRoot>\BHLSearchIndexer\AppConfig.Names.xml |
| <BHLRoot>\BHLSearchIndexer\AppConfig.xml.template | <BHLRoot>\BHLSearchIndexer\AppConfig.Full.xml |
| <BHLRoot>\BHLSearchIndexQueueLoad\AppConfig.xml.template | <BHLRoot>\BHLSearchIndexQueueLoad\AppConfig.xml |
| <BHLRoot>\BHLServerTest\app.config.template | <BHLRoot>\BHLServerTest\app.config |
| <BHLRoot>\BHLService\Remoting.config.template | <BHLRoot>\BHLService\Remoting.config |
| <BHLRoot>\BHLService\Web.config.template | <BHLRoot>\BHLService\Web.config |
| <BHLRoot>\BHLTextImportProcessor\app.config.template | <BHLRoot>\BHLTextImportProcessor\app.config |
| <BHLRoot>\BHLUSWeb2\Remoting.config.template | <BHLRoot>\BHLUSWeb2\Remoting.config |
| <BHLRoot>\BHLUSWeb2\Web.config.template | <BHLRoot>\BHLUSWeb2\Web.config |
| <BHLRoot>\BHLUSWeb2\Views\Web.config.template | <BHLRoot>\BHLUSWeb2\Views\Web.config |
| <BHLRoot>\BHLUSWeb2\services\Name\Web.config.template | <BHLRoot>\BHLUSWeb2\services\Name\Web.config |
| <BHLRoot>\IAAnalysisHarvest\App.config.template | <BHLRoot>\IAAnalysisHarvest\App.config |
| <BHLRoot>\IAHarvest\App.config.template | <BHLRoot>\IAHarvest\App.config |
| <BHLRoot>\SiteServices\Remoting.config.template | <BHLRoot>\SiteServices\Remoting.config |
| <BHLRoot>\SiteServices\Web.config.template | <BHLRoot>\SiteServices\Web.config |
2) Make the specified modifications to each of the config files in the following list:
# = denotes optional modifications that are not required for development installations
<BHLRoot>\BHLService\Web.config
| Element | Value |
|---|---|
| # appSettings/SMTPHost | SMTP host address |
| appSettings/UseRemoteFileAccessProvider | false |
| connectionStrings/BHL | Connection string for BHL database |
<BHLRoot>\BHLUSWeb2\Web.config
| Element | Value |
|---|---|
| appSettings/UseRemoteFileAccessProvider | false |
| # appSettings/TwitterConsumerKey | Consumer Key for Twitter API |
| # appSettings/TwitterConsumerSecret | Consumer Secret for Twitter API |
| # appSettings/GeminiURL | Issue tracking service URL |
| # appSettings/GeminiUser | Issue tracking service username |
| # appSettings/GeminiPassword | Issue tracking service password |
| connectionStrings/BHL | Connection string for BHL database |
| # system.net/mailSettings/smtp/network | STMP host address, username, and password |
ADMIN.BIODIVERSITYLIBRARY.ORG
<BHLRoot>\BHLAdminWeb\Web.config
| Element | Value |
|---|---|
| appSettings/CollectionImageUploadPath | Path in which to place uploaded images. |
| appSettings/ItunesImageUploadPath | Path in which to place uploaded images. |
| appSettings/AlertMsgPath | Path in which to place text file with informational messages. |
| appSettings/MARCUploadPath | Path in which to place uploaded MARC files. |
| appSettings/MARCUploadDrive | Drive letter or server name for MARC uploads. |
| appSettings/MARCUploadServer | Server name for MARC uploads. |
| appSettings/CitationNewPath | Path for new uploads of citation information. |
| appSettings/CitationCompletePath | Path for completed uploads of citation information. |
| appSettings/CitationErrorPath | Path for failed uploads of citation information. |
| appSettings/OCRJobNewPath | Path for OCR job files. |
| # appSettings/FlickrUserId | Flickr user identifier. |
| # appSettings/SMTPHost | SMTP host address |
| # appSettings/EmailFromName | Email sender address to use when sending emails. |
| # appSettings/EmailFromAddress | Email sender name to use when sending emails. |
| # appSettings/BHLUserAdminEmailAddress | Email address of a BHL user administrator. |
| appSettings/LocalFileFolder | File folder in which to place new data files ingested from Internet Archive. |
| appSettings/DOIDepositFileLocation | Path to CrossRef deposit files. |
| appSettings/DOISubmitLogFileLocation | Path to Crossref log files. |
| # appSettings/FlickrKey | Flickr API key |
| # appSettings/FlickrSecret | Flickr API secret |
| connectionStrings/BHL | Connection string for BHL database |
| connectionStrings/BHLUser | Connection string for BHL user account database |
<BHLRoot>\SiteServices\Web.config
| Element | Value |
|---|---|
| # appSettings/SMTPHost | SMTP host address |
| appSettings/DOIDepositFileLocation | Location of DOI deposit files |
| appSettings/DOISubmitLogFileLocation | Location of DOI submit log files |
| appSettings/OCRJobNewPath | Path to new OCR job files |
| appSettings/MQHost | Message queue host URL |
| appSettings/MQPort | Message queue port |
| appSettings/MQAPIPort | Message queue API port |
| appSettings/MQUsername | Message queue username |
| appSettings/MQPassword | Message queue password |
| connectionStrings/BHL | Connection string for BHL database |
| # system.net/mailSettings/smtp/network(@host) | SMTP host address |
| # system.net/mailSettings/smtp/network(@port) | STMP host port |
| # system.net/mailSettings/smtp/network(@userName) | SMTP host username |
| # system.net/mailSettings/smtp/network(@password) | SMTP host password |
DATA IMPORT APPS
<BHLRoot>\BHLBioStorHarvest\app.config
| Element | Value |
|---|---|
| # appSettings/SMTPHost | SMTP host address |
| # appSettings/EmailFromAddress | "From" address for emails sent by the process |
| # appSettings/EmailToAddress | Recipient of emails sent by the process |
| connectionStrings/BHLImportEntities | Connection string for BHLImport database |
| connectionStrings/BHL | Connection string for BHL database |
<BHLRoot>\BHLImportEFDataModel\App.Config
| Element | Value |
|---|---|
| connectionStrings/BHLImportEntities | Connection string for BHLImport database |
<BHLRoot>\BHLImportService\Web.config
| Element | Value |
|---|---|
| connectionStrings/BHLImport | Connection string for BHLImport database |
<BHLRoot>\IAAnalysisHarvest\App.config
| Element | Value |
|---|---|
| connectionStrings/IAAnalysis | Connection string for IAAnalysis database |
| # appSettings/SMTPHost | SMTP host address |
| # appSettings/EmailFromAddress | "From" address for emails sent by the process |
| # appSettings/EmailToAddress | Recipient of emails sent by the process |
<BHLRoot>\IAHarvest\App.config
| Element | Value |
|---|---|
| connectionStrings/BHLImport | Connection string for BHLImport database |
| # appSettings/SMTPHost | SMTP host address |
| # appSettings/EmailFromAddress | "From" address for emails sent by the process |
| # appSettings/EmailToAddress | Recipient of emails sent by the process |
| appSettings/LocalFileFolder | Local folder to hold downloaded files |
UTILITY APPS
<BHLRoot>\BHLDOIService\app.config
| Element | Value |
|---|---|
| # appSettings/SMTPHost | SMTP host address |
| # appSettings/EmailFromAddress | "From" address for emails sent by the process |
| # appSettings/EmailToAddress | Recipient of emails sent by the process |
| appSettings/CrossRefDepositorName | Depositor name associated with CrossRef account |
| appSettings/CrossRefDepositorEmail | Depositor email associated with CrossRef account |
| appSettings/CrossRefLogin | Login for CrossRef account |
| appSettings/CrossRefPassword | Password for CrossRef account |
<BHLRoot>\BHLExportProcessor\App.config
| Element | Value |
|---|---|
| # appSettings/SMTPHost | SMTP host address |
| # appSettings/EmailFromAddress | "From" address for emails sent by the process |
| # appSettings/EmailToAddress | Recipient of emails sent by the process |
| appSettings/RISTitleTempFile | Replace \\SERVER\FOLDER with valid path |
| appSettings/RISTitleFile | Replace \\SERVER\FOLDER with valid path |
| appSettings/RISTitleZipFile | Replace \\SERVER\FOLDER with valid path |
| appSettings/RISItemTempFile | Replace \\SERVER\FOLDER with valid path |
| appSettings/RISItemFile | Replace \\SERVER\FOLDER with valid path |
| appSettings/RISItemZipFile | Replace \\SERVER\FOLDER with valid path |
| appSettings/RISSegmentTempFile | Replace \\SERVER\FOLDER with valid path |
| appSettings/RISSegmentFile | Replace \\SERVER\FOLDER with valid path |
| appSettings/RISSegmentZipFile | Replace \\SERVER\FOLDER with valid path |
| appSettings/RISInternalTitleTempFile | Replace \\SERVER\FOLDER with valid path |
| appSettings/RISInternalTitleFile | Replace \\SERVER\FOLDER with valid path |
| appSettings/RISInternalTitleZipFile | Replace \\SERVER\FOLDER with valid path |
| appSettings/RISInternalItemTempFile | Replace \\SERVER\FOLDER with valid path |
| appSettings/RISInternalItemFile | Replace \\SERVER\FOLDER with valid path |
| appSettings/RISInternalItemZipFile | Replace \\SERVER\FOLDER with valid path |
| appSettings/RISInternalSegmentTempFile | Replace \\SERVER\FOLDER with valid path |
| appSettings/RISInternalSegmentFile | Replace \\SERVER\FOLDER with valid path |
| appSettings/RISInternalSegmentZipFile | Replace \\SERVER\FOLDER with valid path |
| appSettings/MODSTitleTempFile | Replace \\SERVER\FOLDER with valid path |
| appSettings/MODSTitleFile | Replace \\SERVER\FOLDER with valid path |
| appSettings/MODSTitleZipFile | Replace \\SERVER\FOLDER with valid path |
| appSettings/MODSItemTempFile | Replace \\SERVER\FOLDER with valid path |
| appSettings/MODSItemFile | Replace \\SERVER\FOLDER with valid path |
| appSettings/MODSItemZipFile | Replace \\SERVER\FOLDER with valid path |
| appSettings/MODSSegmentTempFile | Replace \\SERVER\FOLDER with valid path |
| appSettings/MODSSegmentFile | Replace \\SERVER\FOLDER with valid path |
| appSettings/MODSSegmentZipFile | Replace \\SERVER\FOLDER with valid path |
| appSettings/MODSInternalTitleTempFile | Replace \\SERVER\FOLDER with valid path |
| appSettings/MODSInternalTitleFile | Replace \\SERVER\FOLDER with valid path |
| appSettings/MODSInternalTitleZipFile | Replace \\SERVER\FOLDER with valid path |
| appSettings/MODSInternalItemTempFile | Replace \\SERVER\FOLDER with valid path |
| appSettings/MODSInternalItemFile | Replace \\SERVER\FOLDER with valid path |
| appSettings/MODSInternalItemZipFile | Replace \\SERVER\FOLDER with valid path |
| appSettings/MODSInternalSegmentTempFile | Replace \\SERVER\FOLDER with valid path |
| appSettings/MODSInternalSegmentFile | Replace \\SERVER\FOLDER with valid path |
| appSettings/MODSInternalSegmentZipFile | Replace \\SERVER\FOLDER with valid path |
| appSettings/BibTeXTitleTempFile | Replace \\SERVER\FOLDER with valid path |
| appSettings/BibTeXTitleFile | Replace \\SERVER\FOLDER with valid path |
| appSettings/BibTeXTitleZipFile | Replace \\SERVER\FOLDER with valid path |
| appSettings/BibTeXItemTempFile | Replace \\SERVER\FOLDER with valid path |
| appSettings/BibTeXItemFile | Replace \\SERVER\FOLDER with valid path |
| appSettings/BibTeXItemZipFile | Replace \\SERVER\FOLDER with valid path |
| appSettings/BibTeXSegmentTempFile | Replace \\SERVER\FOLDER with valid path |
| appSettings/BibTeXSegmentFile | Replace \\SERVER\FOLDER with valid path |
| appSettings/BibTeXSegmentZipFile | Replace \\SERVER\FOLDER with valid path |
| appSettings/BibTeXInternalTitleTempFile | Replace \\SERVER\FOLDER with valid path |
| appSettings/BibTeXInternalTitleFile | Replace \\SERVER\FOLDER with valid path |
| appSettings/BibTeXInternalTitleZipFile | Replace \\SERVER\FOLDER with valid path |
| appSettings/BibTeXInternalItemTempFile | Replace \\SERVER\FOLDER with valid path |
| appSettings/BibTeXInternalItemFile | Replace \\SERVER\FOLDER with valid path |
| appSettings/BibTeXInternalItemZipFile | Replace \\SERVER\FOLDER with valid path |
| appSettings/BibTeXInternalSegmentTempFile | Replace \\SERVER\FOLDER with valid path |
| appSettings/BibTeXInternalSegmentFile | Replace \\SERVER\FOLDER with valid path |
| appSettings/BibTeXInternalSegmentZipFile | Replace \\SERVER\FOLDER with valid path |
| appSettings/TSVDOIFile | Replace \\SERVER\FOLDER with valid path |
| appSettings/TSVAuthorFile | Replace \\SERVER\FOLDER with valid path |
| appSettings/TSVItemFile | Replace \\SERVER\FOLDER with valid path |
| appSettings/TSVPageFile | Replace \\SERVER\FOLDER with valid path |
| appSettings/TSVPageNameFile | Replace \\SERVER\FOLDER with valid path |
| appSettings/TSVPartFile | Replace \\SERVER\FOLDER with valid path |
| appSettings/TSVPartAuthorFile | Replace \\SERVER\FOLDER with valid path |
| appSettings/TSVKeywordFile | Replace \\SERVER\FOLDER with valid path |
| appSettings/TSVTitleFile | Replace \\SERVER\FOLDER with valid path |
| appSettings/TSVTitleIdentifierFile | Replace \\SERVER\FOLDER with valid path |
| appSettings/TSVInternalDOIFile | Replace \\SERVER\FOLDER with valid path |
| appSettings/TSVInternalAuthorFile | Replace \\SERVER\FOLDER with valid path |
| appSettings/TSVInternalItemFile | Replace \\SERVER\FOLDER with valid path |
| appSettings/TSVInternalPageFile | Replace \\SERVER\FOLDER with valid path |
| appSettings/TSVInternalPageNameFile | Replace \\SERVER\FOLDER with valid path |
| appSettings/TSVInternalPartFile | Replace \\SERVER\FOLDER with valid path |
| appSettings/TSVInternalPartAuthorFile | Replace \\SERVER\FOLDER with valid path |
| appSettings/TSVInternalKeywordFile | Replace \\SERVER\FOLDER with valid path |
| appSettings/TSVInternalTitleFile | Replace \\SERVER\FOLDER with valid path |
| appSettings/TSVInternalTitleIdentifierFile | Replace \\SERVER\FOLDER with valid path |
| # system.net/mailSettings/smtp/network(@host) | SMTP host address |
| # system.net/mailSettings/smtp/network(@port) | STMP host port |
| # system.net/mailSettings/smtp/network(@userName) | SMTP host username |
| # system.net/mailSettings/smtp/network(@password) | SMTP host password |
<BHLRoot>\BHLFlickrTagHarvest\app.config
| Element | Value |
|---|---|
| # appSettings/SMTPHost | SMTP host address |
| # appSettings/EmailFromAddress | "From" address for emails sent by the process |
| # appSettings/EmailToAddress | Recipient of emails sent by the process |
| appSettings/FlickrApiKey | Flickr API Key |
| appSettings/BHLFlickrUserID | Flickr username |
| # system.net/mailSettings/smtp/network(@host) | SMTP host address |
| # system.net/mailSettings/smtp/network(@port) | STMP host port |
| # system.net/mailSettings/smtp/network(@userName) | SMTP host username |
| # system.net/mailSettings/smtp/network(@password) | SMTP host password |
<BHLRoot>\BHLFlickrThumbGrab\app.config
| Element | Value |
|---|---|
| # appSettings/SMTPHost | SMTP host address |
| # appSettings/EmailFromAddress | "From" address for emails sent by the process |
| # appSettings/EmailToAddress | Recipient of emails sent by the process |
| appSettings/FlickrAPIKey | Flickr API key |
| appSettings/ImageFileName | Replace \\SERVER\FOLDER with valid path |
| appSettings/ImageFolder | Replace \\SERVER\FOLDER with valid path |
| appSettings/ImageListFilePath | Replace \\SERVER\FOLDER with valid path |
| appSettings/DefaultFilesFolder | Replace \\SERVER\FOLDER with valid path |
<BHLRoot>\BHLMETSUpload\app.config
| Element | Value |
|---|---|
| # appSettings/SMTPHost | SMTP host address |
| # appSettings/EmailFromAddress | "From" address for emails sent by the process |
| # appSettings/EmailToAddress | Recipient of emails sent by the process |
| appSettings/METSEmail | Organization email address to place in METS files |
| appSettings/IAS3AccessKey | Internet Archive access key |
| appSettings/IAS3SecretKey | Internet Archive secret key |
<BHLRoot>\BHLNameFileGenerator\app.config
| Element | Value |
|---|---|
| # appSettings/SMTPHost | SMTP host address |
| # appSettings/EmailFromAddress | "From" address for emails sent by the process |
| # appSettings/EmailToAddress | Recipient of emails sent by the process |
| appSettings/IAS3AccessKey | Internet Archive access key |
| appSettings/IAS3SecretKey | Internet Archive secret key |
<BHLRoot>\BHLOAIHarvester\app.config
| Element | Value |
|---|---|
| # appSettings/SMTPHost | SMTP host address |
| # appSettings/EmailFromAddress | "From" address for emails sent by the process |
| # appSettings/EmailToAddress | Recipient of emails sent by the process |
| connectionStrings/BHLImport | Connection string for BHLImport database |
| # system.net/mailSettings/smtp/network(@host) | SMTP host address |
| # system.net/mailSettings/smtp/network(@port) | STMP host port |
| # system.net/mailSettings/smtp/network(@userName) | SMTP host username |
| # system.net/mailSettings/smtp/network(@password) | SMTP host password |
<BHLRoot>\BHLOCRRefresh\app.config
| Element | Value |
|---|---|
| # appSettings/SMTPHost | SMTP host address |
| # appSettings/EmailFromAddress | "From" address for emails sent by the process |
| # appSettings/EmailToAddress | Recipient of emails sent by the process |
| appSettings/OcrJobNewPath | Path to new job files |
| appSettings/OcrJobProcessingPath | Path to job files being processed |
| appSettings/OcrJobCompletePath | Path to complete job files |
| appSettings/OcrJobErrorPath | Path to failed job files |
| appSettings/OcrJobTempPath | Path to temporary OCR files |
| # system.net/mailSettings/smtp/network(@host) | SMTP host address |
| # system.net/mailSettings/smtp/network(@port) | STMP host port |
| # system.net/mailSettings/smtp/network(@userName) | SMTP host username |
| # system.net/mailSettings/smtp/network(@password) | SMTP host password |
<BHLRoot>\BHLPageNameRefresh\app.config
| Element | Value |
|---|---|
| # appSettings/SMTPHost | SMTP host address |
| # appSettings/EmailFromAddress | "From" address for emails sent by the process |
| # appSettings/EmailToAddress | Recipient of emails sent by the process |
<BHLRoot>\BHLPDFGenerator\app.config
| Element | Value |
|---|---|
| # appSettings/SMTPHost | SMTP host address |
| # appSettings/EmailFromAddress | "From" address for emails sent by the process |
| # appSettings/EmailToAddress | Recipient of emails sent by the process |
| appSettings/PdfFilePath | Replace \\SERVER\FOLDER with valid path |
<BHLRoot>\BHLSearchIndexer\AppConfig.xml
| Element | Value |
|---|---|
| # appSettings/SMTPHost | SMTP host address |
| # appSettings/SMTPPort | SMTP host port |
| # appSettings/EmailToAddresses | Recipients of emails sent by the process (comma-separated) |
| appSettings/ElasticSearchServerAddress | Search Server address, including port number |
| appSettings/MQAddress | Message queue host URL |
| appSettings/MQPort | Message queue port |
| appSettings/MQUser | Message queue username |
| appSettings/MQPassword | Message queue password |
| appSettings/MQQueueName | Name of message queue for items/authors/keywords |
| appSettings/MQErrorExchangeName | Name of MQ error exchange for items/authors/keywords |
| appSettings/MQErrorQueueName | Name of MQ error queue for items/authors/keywords |
| appSettings/DocFolder | Folder for debug output files |
| appSettings/OCRLocation | Set to “remote” |
| # connectionStrings/Production | Connection string for production BHL database |
| connectionStrings/QA | Connection string for QA BHL database |
<BHLRoot>\BHLSearchIndexer\AppConfig.Names.xml
| Element | Value |
|---|---|
| # appSettings/SMTPHost | SMTP host address |
| # appSettings/SMTPPort | SMTP host port |
| # appSettings/EmailToAddresses | Recipients of emails sent by the process (comma-separated) |
| appSettings/ElasticSearchServerAddress | Search Server address, including port number |
| appSettings/MQAddress | Message queue host URL |
| appSettings/MQPort | Message queue port |
| appSettings/MQUser | Message queue username |
| appSettings/MQPassword | Message queue password |
| appSettings/MQQueueName | Name of message queue for names |
| appSettings/MQErrorExchangeName | Name of MQ error exchange for names |
| appSettings/MQErrorQueueName | Name of MQ error queue for names |
| appSettings/DocFolder | Folder for debug output files |
| appSettings/OCRLocation | Set to “remote” |
| # connectionStrings/Production | Connection string for production BHL database |
| connectionStrings/QA | Connection string for QA BHL database |
<BHLRoot>\BHLSearchIndexer\AppConfig.Full.xml
| Element | Value |
|---|---|
| # appSettings/SMTPHost | SMTP host address |
| # appSettings/SMTPPort | SMTP host port |
| # appSettings/EmailToAddresses | Recipients of emails sent by the process (comma-separated) |
| appSettings/ElasticSearchServerAddress | Search Server address, including port number |
| appSettings/DocFolder | Folder for debug output files |
| appSettings/OCRLocation | Set to “remote” |
| appSettings/DoFullIndex | Set to “true” |
| # connectionStrings/Production | Connection string for production BHL database |
| connectionStrings/QA | Connection string for QA BHL database |
<BHLRoot>\BHLSearchIndexQueueLoad\AppConfig.xml
| Element | Value |
|---|---|
| # appSettings/SMTPHost | SMTP host address |
| # appSettings/SMTPPort | SMTP host port |
| # appSettings/EmailToAddresses | Recipients of emails sent by the process (comma-separated) |
| appSettings/MQAddress | Message queue host URL |
| appSettings/MQPort | Message queue port |
| appSettings/MQUser | Message queue username |
| appSettings/MQPassword | Message queue password |
| appSettings/MQQueue | Name of message queue for items/authors/keywords |
| appSettings/MQErrorExchange | Name of MQ error exchange for items/authors/keywords |
| appSettings/MQErrorQueue | Name of MQ error queue for items/authors/keywords |
| appSettings/MQQueueNames | Name of MQ queue for names |
| appSettings/MQErrorExchangeNames | Name of MQ error exchange for names |
| appSettings/MQErrorQueueNames | Name of MQ error queue for names |
| connectionStrings/Production | Connection string for production BHL database |
| # connectionStrings/QA | Connection string for QA BHL database |
<BHLRoot>\BHLTextImportProcessor\app.config
| Element | Value |
|---|---|
| # appSettings/SMTPHost | SMTP host address |
| # appSettings/EmailFromAddress | "From" address for emails sent by the process |
| # appSettings/EmailToAddress | Recipient of emails sent by the process |
| # appSettings/DebugPath | Path for debugging output |
| appSettings/TextImportFilePath | URL of location of text import files |
| connectionStrings/BHL | Connection string for BHL database |
| # system.net/mailSettings/smtp/network(@host) | SMTP host address |
| # system.net/mailSettings/smtp/network(@port) | STMP host port |
| # system.net/mailSettings/smtp/network(@userName) | SMTP host username |
| # system.net/mailSettings/smtp/network(@password) | SMTP host password |
TEST PROJECTS
<BHLRoot>\BHLApiDALTest\App.config
| Element | Value |
|---|---|
| connectionStrings/BHL | Connection string for BHL database |
<BHLRoot>\BHLCoreDALTest\App.config
| Element | Value |
|---|---|
| connectionStrings/BHL | Connection string for BHL database |
<BHLRoot>\BHLServerTest\app.config
| Element | Value |
|---|---|
| connectionStrings/BHL | Connection string for BHL database |
| Connectionstrings/Admin | Optional connection string for logging database |
- Open the BHLUtility solution in Visual Studio.
- Build the BHLSearchIndexer project.
- Make sure you have completed the configuration within the AppConfig.Full.xml file.
- Run the BHLSearchIndex project, specifying “AppConfig.Full.xml” as the application argument.