[pecl-search_engine-solr] master: fix existing collection error
| From: | omars44 | Date: | Thu, 25 Jun 2026 04:52:05 +0000 |
| Subject: | [pecl-search_engine-solr] master: fix existing collection error | ||
| Groups: | php.pecl.cvs | ||
| Request: | Send a blank email to pecl-cvs+get-28625@lists.php.net to get a copy of this message | ||
Author: omars44 (omars44)
Date: 2025-11-17T10:14:55+02:00
Commit: https://github.com/php/pecl-search_engine-solr/commit/f070c2ce44e5dc6bb4239302598bcc8ea5f1ffa4
Raw diff: https://github.com/php/pecl-search_engine-solr/commit/f070c2ce44e5dc6bb4239302598bcc8ea5f1ffa4.diff
fix existing collection error
Changed paths:
M README.INSTALLATION
M README.md
M tests/docker/Dockerfile
M tests/docker/init-solr.sh
Diff:
diff --git a/README.INSTALLATION b/README.INSTALLATION
index 2b9d18f1..41cb5449 100644
--- a/README.INSTALLATION
+++ b/README.INSTALLATION
@@ -2,7 +2,7 @@
PHP VERSION Dependencies
================================================================================
-PHP version 7.0 or later is needed
+PHP version 8.0 or later is needed
================================================================================
Extension Dependencies
@@ -224,10 +224,8 @@ http://windows.php.net/downloads/snaps/php-5.3/php-5.3-src-latest.zip
How to Report Bugs
================================================================================
-Please report bugs to omars@php.net
+Please report bugs to
-You can also register bugs here
-
-http://pecl.php.net/bugs/report.php?package=solr
+https://github.com/php/pecl-search_engine-solr/issues
Thank you for using PHP
diff --git a/README.md b/README.md
index 4df7bf15..c4a9d157 100644
--- a/README.md
+++ b/README.md
@@ -31,15 +31,34 @@ For RHEL/Fedora/CentOS/Scientific linux
Please make sure to install them before proceeding to the compilation process
```bash
- phpize
- ./configure
- make
- make test
- sudo make install
+phpize
+./configure
+make
+make test
+sudo make install
```
more details on README.INSTALLATION
+Local Dev Environment
+---------------------
+
+```bash
+docker-compose up -d
+# OR
+docker-compose up --build -d
+
+phpize
+./configure
+make
+
+export SOLR_SERVER_CONFIGURED=1
+php run-tests.php -q -d extension=$PWD/modules/solr.so --show-diff
+# OR run a single test
+php run-tests.php -q -d extension=$PWD/modules/solr.so --show-diff
tests/004.solrclient_query_terms.phpt
+
+```
+
Contributions
-------------
All forms of contributions are welcome! Whether contributing to tests, or the source.
diff --git a/tests/docker/Dockerfile b/tests/docker/Dockerfile
index 8c967453..ad08d5fb 100644
--- a/tests/docker/Dockerfile
+++ b/tests/docker/Dockerfile
@@ -1,5 +1,13 @@
-FROM solr:9.10.0-slim
+FROM solr:7-slim
+
+USER root
+
+RUN apt-get update && \
+ apt-get install -y --no-install-recommends curl && \
+ rm -rf /var/lib/apt/lists/*
COPY collections /opt/solr-configs
-COPY --chmod=755 init-solr.sh /docker-entrypoint-initdb.d/init-solr.sh
\ No newline at end of file
+COPY --chmod=755 init-solr.sh /docker-entrypoint-initdb.d/init-solr.sh
+
+USER solr
\ No newline at end of file
diff --git a/tests/docker/init-solr.sh b/tests/docker/init-solr.sh
index 0f73af30..16a3a862 100644
--- a/tests/docker/init-solr.sh
+++ b/tests/docker/init-solr.sh
@@ -3,18 +3,32 @@ set -e
echo "Starting temporary Solr server for initialization..."
solr start
+echo "Solr server is running."
-echo "Solr server is running. Creating collections with default configs..."
+create_and_index() {
+ COLLECTION_NAME=$1
+ DATA_FILE=$2
-solr create -c collection1
-solr create -c metal_store
-solr create -c myfiles
+ echo "Checking if collection '$COLLECTION_NAME' exists..."
-echo "Collections created. Indexing data..."
+ if curl -s "http://localhost:8983/solr/admin/collections?action=LIST"
| grep -q "\"$COLLECTION_NAME\""; then
+ echo "Collection '$COLLECTION_NAME' already exists. Skipping creation and
indexing."
+ else
+ echo "Collection '$COLLECTION_NAME' not found. Creating..."
+ solr create -c "$COLLECTION_NAME"
-curl 'http://localhost:8983/solr/collection1/update/json?commit=true'
--data-binary @/opt/solr-configs/collection1.json -H 'Content-type:application/json'
-curl 'http://localhost:8983/solr/metal_store/update/json?commit=true'
--data-binary @/opt/solr-configs/metal_store.json -H 'Content-type:application/json'
+ if [ -n "$DATA_FILE" ] && [ -f "$DATA_FILE" ]; then
+ echo "Indexing data for '$COLLECTION_NAME' from $DATA_FILE..."
+ curl "http://localhost:8983/solr/$COLLECTION_NAME/update/json?commit=true"
--data-binary @"$DATA_FILE" -H 'Content-type:application/json'
+ else
+ echo "No data file provided or found for '$COLLECTION_NAME'. Skipping
indexing."
+ fi
+ fi
+}
-echo "Data indexed. Stopping temporary Solr server..."
+create_and_index "collection1" "/opt/solr-configs/collection1.json"
+create_and_index "metal_store" "/opt/solr-configs/metal_store.json"
+
+echo "Data initialization finished. Stopping temporary Solr server..."
solr stop
echo "Solr initialization complete."
\ No newline at end of file