[PECL-CVS] [pecl-search_engine-solr] master: fix existing collection error

[email protected] (omars44) Thu, 25 Jun 2026 04:52:05 +0000
Newsgroups php.pecl.cvs
Message-ID <[email protected]>
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 [email protected]
+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