### Start Solr Server Command Source: https://github.com/eliassih/searchengineetd/blob/main/solr-8.11.2/server/README.txt Command to start the Solr server. Requires setting the SOLR_INSTALL environment variable to the Solr installation directory. ```bash cd $SOLR_INSTALL bin/solr start ``` -------------------------------- ### Start Solr Server Source: https://github.com/eliassih/searchengineetd/blob/main/solr-8.11.2/example/films/README.txt Starts the Solr server. This is a prerequisite for all other Solr operations. ```bash bin/solr start ``` -------------------------------- ### Start Solr with Custom Velocity Templates Source: https://github.com/eliassih/searchengineetd/blob/main/solr-8.11.2/example/files/README.txt This command starts the Solr server with a specified system property that allows in-place editing of Velocity templates. It requires the absolute path to the conf/velocity directory. This method avoids the need to re-create or patch Solr collections for configuration changes. ```bash bin/solr start -Dvelocity.template.base.dir=/example/files/conf/velocity/ ``` -------------------------------- ### Solr Cloud Deployment Source: https://context7.com/eliassih/searchengineetd/llms.txt Instructions for starting Apache Solr in cloud mode using the provided Solr 8.11.2 distribution. ```APIDOC ## Solr Cloud Deployment ### Description This command starts an Apache Solr instance in cloud mode, which is essential for distributed search capabilities and fault tolerance. It assumes Solr 8.11.2 is downloaded and extracted. ### Method Bash Command ### Endpoint N/A #### Parameters - **-c** : Enables SolrCloud mode. - **-p 8983** : Specifies the port for Solr to run on. ### Command ```bash cd solr-8.11.2 bin/solr start -c -p 8983 ``` ### Usage Run this command from the root directory of your Solr installation. ### Response #### Success Response Solr server starts in cloud mode, accessible at `http://localhost:8983`. #### Error Handling Ensure Solr is properly installed and Java is configured. Check Solr logs for detailed errors. ``` -------------------------------- ### Solr Cloud Deployment Command Source: https://context7.com/eliassih/searchengineetd/llms.txt Shell command to start Apache Solr version 8.11.2 in SolrCloud mode. This command navigates to the Solr directory and initiates the Solr server with cloud mode enabled, using ZooKeeper for coordination. It specifies the port to be 8983. ```bash # Start Solr in cloud mode cd solr-8.11.2 bin/solr start -c -p 8983 ``` -------------------------------- ### Configure Jaeger Tracer in solr.xml Source: https://github.com/eliassih/searchengineetd/blob/main/solr-8.11.2/contrib/jaegertracer-configurator/README.txt This XML snippet demonstrates how to set up the Jaeger tracer within the solr.xml file. It includes essential parameters like agent host and port, logging preferences, and buffer sizes for span data. Ensure the solr-jaegertracer library is in the classpath. ```xml localhost 5775 true 1000 10000 ``` -------------------------------- ### Disable Field Guessing in Solr Source: https://github.com/eliassih/searchengineetd/blob/main/solr-8.11.2/server/README.txt Example using curl to disable automatic field creation for a specific Solr collection. This is useful when you want to manage your schema explicitly. ```bash curl http://host:8983/solr/mycollection/config -d '{"set-user-property": {"update.autoCreateFields":"false"}}' ``` -------------------------------- ### S3OutputStream Initialization and Writing (Java) Source: https://github.com/eliassih/searchengineetd/blob/main/solr-8.11.2/NOTICE.txt Demonstrates how to initialize an S3OutputStream and write data to an S3 bucket. This typically involves specifying the bucket name, object key, and providing the data to be written. Error handling for potential S3 exceptions should be considered. ```java import io.confluent.connect.s3.storage.S3OutputStream; import java.io.IOException; import java.io.OutputStream; public class S3WriteExample { public static void main(String[] args) { String bucketName = "your-s3-bucket"; String objectKey = "path/to/your/file.txt"; byte[] dataToWrite = "This is the content to write to S3.".getBytes(); try (OutputStream os = new S3OutputStream(bucketName, objectKey)) { os.write(dataToWrite); System.out.println("Successfully wrote data to s3://" + bucketName + "/" + objectKey); } catch (IOException e) { System.err.println("Error writing to S3: " + e.getMessage()); e.printStackTrace(); } } } ``` -------------------------------- ### Schema Management Examples Source: https://github.com/eliassih/searchengineetd/blob/main/Queries.txt Provides examples of adding various common fields to Solr schemas for different collections. ```APIDOC ## POST /solr/{collection}/schema ### Description Examples of adding common fields to Solr schemas. ### Method POST ### Endpoint http://localhost:8983/solr/ETDSearch/schema ### Request Examples 1. **Add 'dc:title' field:** ```json { "add-field": { "name": "dc:title", "type": "text_general", "stored": true, "indexed": true } } ``` 2. **Add 'dc:description' field:** ```json { "add-field": { "name": "dc:description", "type": "text_general", "stored": true, "indexed": true } } ``` 3. **Add 'dc:subject' field (multi-valued):** ```json { "add-field": { "name": "dc:subject", "type": "text_general", "stored": true, "multiValued": true, "indexed": true } } ``` 4. **Add 'dc:language' field:** ```json { "add-field": { "name": "dc:language", "type": "text_general", "stored": true } } ``` 5. **Add 'dc:date' field (date type with docValues):** ```json { "add-field": { "name": "dc:date", "type": "pdate", "stored": true, "docValues": true } } ``` 6. **Add 'validLink' field to 'testCollection' (text_general with docValues):** ```json { "add-field": { "name": "validLink", "type": "text_general", "stored": true, "docValues": true } } ``` ### Response #### Success Response (200) - **responseHeader** (object) - Contains information about the request. - **success** (boolean) - Indicates if the operation was successful. #### Response Example ```json { "responseHeader": { "status": 0, "QTime": 5 }, "success": true } ``` ``` -------------------------------- ### Import Data from hsqldb Database Source: https://github.com/eliassih/searchengineetd/blob/main/solr-8.11.2/example/example-DIH/README.txt This endpoint demonstrates how to initiate a full data import from the hsqldb database into the 'db' Solr core. ```APIDOC ## Import Data from hsqldb Database ### Description This endpoint demonstrates how to initiate a full data import from the hsqldb database into the 'db' Solr core. ### Method GET ### Endpoint `/solr/db/dataimport` ### Query Parameters - **command** (string) - Required - Set to `full-import` to start the data import. ### Request Example ``` http://localhost:8983/solr/db/dataimport?command=full-import ``` ### Response #### Success Response (200) - **status** (integer) - The status of the import operation. - **importResponse** (object) - Details about the import process. #### Response Example ```json { "status": 0, "importResponse": { "status": "done" } } ``` ``` -------------------------------- ### Data Import Handler (DIH) - General Usage Source: https://github.com/eliassih/searchengineetd/blob/main/solr-8.11.2/example/example-DIH/README.txt The DataImportHandler (DIH) is used to import data into Solr. The following examples show how to trigger a full import for different data sources. ```APIDOC ## Data Import Handler (DIH) - General Usage ### Description The DataImportHandler (DIH) is used to import data into Solr. The following examples show how to trigger a full import for different data sources. ### Method GET ### Endpoint `/solr//dataimport` ### Query Parameters - **command** (string) - Required - The command to execute. Use `full-import` for a full data import. ### Request Example ``` http://localhost:8983/solr//dataimport?command=full-import ``` ### Response #### Success Response (200) - **status** (integer) - The status of the import operation. - **importResponse** (object) - Details about the import process. #### Response Example ```json { "status": 0, "importResponse": { "status": "done" } } ``` ``` -------------------------------- ### Browse Interface Source: https://github.com/eliassih/searchengineetd/blob/main/solr-8.11.2/example/films/README.txt Provides a web-based interface for browsing indexed movie data. ```APIDOC ## GET /solr/films/browse ### Description Accesses the Solr browse interface for the 'films' core, allowing interactive exploration of the indexed movie data. ### Method GET ### Endpoint http://localhost:8983/solr/films/browse ### Parameters #### Query Parameters - **facet.field** (string) - Optional - Specifies a field to use for faceting in the browse interface. Example: `genre`. ### Request Example **Basic Browse:** ``` http://localhost:8983/solr/films/browse ``` **Browse with Genre Facet:** ``` http://localhost:8983/solr/films/browse?facet.field=genre ``` ### Response #### Success Response (200) - **HTML Page** - A web page displaying the indexed movie data and available facets. #### Response Example (This endpoint returns an HTML page, not JSON. The content will vary based on your Solr configuration and data.) ``` -------------------------------- ### Display ChatGPT Query Summary (Jinja2) Source: https://github.com/eliassih/searchengineetd/blob/main/searchFrontEnd/templates/results.html This Jinja2 template displays a summary generated by ChatGPT. It's a simple variable substitution for presenting AI-generated content. ```Jinja2 A query summary by ChatGPT * * * {{resultGPT}} ``` -------------------------------- ### Python URL Validation and Ranking Script Source: https://context7.com/eliassih/searchengineetd/llms.txt A Python script that iterates through XML files in a specified directory, validates document URLs using HTTP GET requests, and adds a 'ranking' field to documents with accessible URLs. It utilizes the requests and lxml libraries for network requests and XML parsing, respectively. Errors during URL checking are printed to the console. ```python import os import requests from lxml import etree def send_get_request(url): """Check if a URL is accessible.""" try: response = requests.get(url, timeout=10) return response.status_code == 200 except Exception as e: print(f'Error checking {url}: {str(e)}') return False def validate_and_rank(directory): """Process XML files and add ranking based on URL validity.""" for filename in os.listdir(directory): file_path = os.path.join(directory, filename) if not os.path.isfile(file_path): continue parser = etree.XMLParser(remove_blank_text=True) tree = etree.parse(file_path, parser) root = tree.getroot() for doc in root.iter('doc'): for field in doc.iter('field'): if field.attrib.get('name') == 'identifier': url = field.text if send_get_request(url): # Add high ranking for accessible documents ranking = etree.SubElement(doc, 'field') ranking.attrib['name'] = 'ranking' ranking.text = '5' # Save updated XML with open(file_path, 'wb') as f: tree.write(f, pretty_print=True, xml_declaration=True, encoding='utf-8') # Usage validate_and_rank('ReformattedData/') ``` -------------------------------- ### Create Solr Collection for ETDSearch Source: https://context7.com/eliassih/searchengineetd/llms.txt This command creates a new Solr collection named 'ETDSearch' with 2 shards and 2 replicas. Ensure Solr is running before executing this command. ```bash bin/solr create -c ETDSearch -s 2 -rf 2 ``` -------------------------------- ### Index Full Text Document with Tika Integration Source: https://github.com/eliassih/searchengineetd/blob/main/solr-8.11.2/example/example-DIH/README.txt This endpoint demonstrates indexing a full-text document using Tika integration within the 'tika' Solr core. ```APIDOC ## Index Full Text Document with Tika Integration ### Description This endpoint demonstrates indexing a full-text document using Tika integration within the 'tika' Solr core. ### Method GET ### Endpoint `/solr/tika/dataimport` ### Query Parameters - **command** (string) - Required - Set to `full-import` to start the data import. ### Request Example ``` http://localhost:8983/solr/tika/dataimport?command=full-import ``` ### Response #### Success Response (200) - **status** (integer) - The status of the import operation. - **importResponse** (object) - Details about the import process. #### Response Example ```json { "status": 0, "importResponse": { "status": "done" } } ``` ``` -------------------------------- ### Display Event Log Data with Timezone Handling Source: https://github.com/eliassih/searchengineetd/blob/main/solr-8.11.2/server/solr-webapp/webapp/partials/logging.html This snippet demonstrates how to display event log data, dynamically showing either UTC or local time based on user preference. It includes placeholders for event level, core, logger, message, and trace information. No external dependencies are explicitly mentioned, and the output is a formatted log entry. ```html {{watcher}} ----------- Time ({{timezone}}) Level Core Logger Message {{ timezone == "UTC" ? event.utc_time : event.local_time }} {{ event.level }} {{event.showTrace}} {{ event.core }} {{event.loggerBase}} {{ event.message }} {{event.trace}} No Events available Last Check: {{sinceDisplay}} Show dates in UTC Auto-Refresh ```