You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@solr.apache.org by no...@apache.org on 2023/06/09 02:45:40 UTC

[solr] branch jira/solr16812-ref-guide created (now 24fa8ba8de4)

This is an automated email from the ASF dual-hosted git repository.

noble pushed a change to branch jira/solr16812-ref-guide
in repository https://gitbox.apache.org/repos/asf/solr.git


      at 24fa8ba8de4 python example

This branch includes the following new commits:

     new 24fa8ba8de4 python example

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



[solr] 01/01: python example

Posted by no...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

noble pushed a commit to branch jira/solr16812-ref-guide
in repository https://gitbox.apache.org/repos/asf/solr.git

commit 24fa8ba8de40501ced19cc71e2c5600c74815621
Author: Noble Paul <no...@gmail.com>
AuthorDate: Fri Jun 9 12:44:25 2023 +1000

    python example
---
 .../modules/indexing-guide/indexing-nav.adoc       |  1 +
 .../indexing-guide/pages/indexing-with-cbor.adoc   | 79 ++++++++++++++++++++++
 2 files changed, 80 insertions(+)

diff --git a/solr/solr-ref-guide/modules/indexing-guide/indexing-nav.adoc b/solr/solr-ref-guide/modules/indexing-guide/indexing-nav.adoc
index 1f10acc9f83..532f56eb10c 100644
--- a/solr/solr-ref-guide/modules/indexing-guide/indexing-nav.adoc
+++ b/solr/solr-ref-guide/modules/indexing-guide/indexing-nav.adoc
@@ -51,6 +51,7 @@
 * Indexing & Data Operations
 ** xref:indexing-with-update-handlers.adoc[]
 *** xref:transforming-and-indexing-custom-json.adoc[]
+** xref:indexing-with-cbor.adoc[]
 ** xref:indexing-with-tika.adoc[]
 ** xref:indexing-nested-documents.adoc[]
 ** xref:post-tool.adoc[]
diff --git a/solr/solr-ref-guide/modules/indexing-guide/pages/indexing-with-cbor.adoc b/solr/solr-ref-guide/modules/indexing-guide/pages/indexing-with-cbor.adoc
new file mode 100644
index 00000000000..ec8a29ac914
--- /dev/null
+++ b/solr/solr-ref-guide/modules/indexing-guide/pages/indexing-with-cbor.adoc
@@ -0,0 +1,79 @@
+= Indexing with Update CBOR data format
+
+Solr supports http://cbor.io/[CBOR] format for indexing as well as querying. It supports most popular languages and platforms. It's much faster and efficient compared to JSON.
+
+== Python example
+
+Save the following as `cbor_post.py`
+[,python]
+----
+import json
+import requests
+import cbor2
+
+# JSON data to send (list of dictionaries)
+json_data = [
+    {
+        "id" : "1",
+        "name_s": "John Doe",
+        "age_i": 30,
+        "city_s": "New York"
+    },
+    {
+        "id": "2",
+        "name_s": "Jane Smith",
+        "age_i": 25,
+        "city_s": "London"
+    }
+]
+# If there is only a single doc you can use the following
+# json_data =    {
+#         "id" : "6",
+#         "name_s": "John Doe",
+#         "age_i": 30,
+#         "city_s": "New York"
+#     }
+
+
+# Convert JSON data to CBOR
+cbor_data = cbor2.dumps(json_data)
+
+# Set the endpoint URL
+# ensure that the collection 'coll1' is already created
+url = "http://localhost:8983/solr/coll1/update/cbor?commit=true"
+
+# Send a POST request with CBOR data
+response = requests.post(url, data=cbor_data, headers={"Content-Type": "application/cbor"})
+
+# Check the response status
+if response.status_code == 200:
+    print("POST request sent successfully!")
+    print("Response Body:", response.text)
+else:
+    print("Unexpected response status:", response.status_code)
+----
+
+=== Running the program
+
+To run the Python program mentioned above, you can follow these steps:
+
+1. Set up Python: Make sure you have Python installed on your system.
+2. Ensure that the dependencies are installed
+
+   pip install requests cbor2
+
+3. Run the program
+
+   python3 cbor_post.py
+
+4. Check the output
+
+   POST request sent successfully!
+   Response Body: {
+   "responseHeader":{
+   "rf":1,
+   "status":0,
+   "QTime":70
+   }
+   }
+