searchstax / searchstax-cloud-connector-for-sitecore Goto Github PK
View Code? Open in Web Editor NEWConnector for SearchStax Cloud with Sitecore
License: Apache License 2.0
Connector for SearchStax Cloud with Sitecore
License: Apache License 2.0
The aliases and collections used for the XDB rebuild collections are not prefixed by default. This means that you cannot have multiple sites running on the same instance without alterations.
Regular PowerShell must be used for Azure Apps.
It could either be
Two options being presented in the Yaml module and pros/cons listed in the plugin documentation
Option a) Use standard solr configs (-1 autoSoftCommit, 15000ms autoCommit)
Option b) Use SearchStax recommended configs (120000ms autoSoftCommit, 300000ms autoCommit)
Or simply using SearchStax recommended configs by default. This would provide a more sensible onboarding experience and reduce post-onboarding support tickets for performance issues and backup failures.
SearchStax recommendations are here for reference - https://www.searchstax.com/blog/5-ways-to-optimize-your-solr-search-performance-for-sitecore/
This plugin assumes too much about how a Sitecore site might be set up. For instance, if my prefix is mylittlepony and root is C:\inetpub\wwwroot it assumes the connection strings are located in C:\inetpub\wwwroot\mylittlepony.xconnect \App_Config\ConnectionStrings.config. This is quite often not the case as many of the Sitecore SIF installation steps are customizable.
Finding account names, deployment IDs and instructing users to user their SearchStax passwords (Or 2FA) rather than deployment passwords will help developers become more self sufficient with the connector
If clients have MFA enabled, plugin should ask for the TFA token. Currently it does not, and the authentication fails and clients are not able to use the plugin
As part of #2 , I have discovered that the aliases are required when using SwitchOnRebuildSolrCloudSearchIndex. The preference is to set the setting ContentSearch.Solr.EnforceAliasCreation
to false
in Sitecore, so that everything that is required from Solr is created using this plugin.
This is an un-used feature which requires additional maintainability for the connector
Criteria:
When the user specifies Configuration Mode, COMMERCE should not be an accepted option.
ZD Tkt - #5119
Creating XDB Aliases ...
xdb_internal
Invoke-WebRequest: C:\pkgs\searchstax-sitecore-plugin-1.15\searchstax-sitecore-plugin-1.15\src\searchstax-sitecore-xconnect.ps1:58
Line |
58 | Invoke-WebRequest -Uri $url
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~
| { "responseHeader":{ "status":400, "QTime":28}, "Operation createalias caused
| exception:":"org.apache.solr.common.SolrException:org.apache.solr.common.SolrException: Can't create
| collection alias for collections='xdb_internal', 'xdb_internal' is not an existing collection or
| alias", "exception":{ "msg":"Can't create collection alias for collections='xdb_internal',
| 'xdb_internal' is not an existing collection or alias", "rspCode":400}, "error":{
| "metadata":[ "error-class","org.apache.solr.common.SolrException",
| "root-error-class","org.apache.solr.common.SolrException"], "msg":"Can't create collection alias
| for collections='xdb_internal', 'xdb_internal' is not an existing collection or alias",
| "code":400}}
xdb_rebuild_internal
Invoke-WebRequest: C:\pkgs\searchstax-sitecore-plugin-1.15\searchstax-sitecore-plugin-1.15\src\searchstax-sitecore-xconnect.ps1:58
Line |
58 | Invoke-WebRequest -Uri $url
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~
| { "responseHeader":{ "status":400, "QTime":10}, "Operation createalias caused
| exception:":"org.apache.solr.common.SolrException:org.apache.solr.common.SolrException: Can't create
| collection alias for collections='xdb_rebuild_internal', 'xdb_rebuild_internal' is not an existing
| collection or alias", "exception":{ "msg":"Can't create collection alias for
| collections='xdb_rebuild_internal', 'xdb_rebuild_internal' is not an existing collection or alias",
| "rspCode":400}, "error":{ "metadata":[
| "error-class","org.apache.solr.common.SolrException",
| "root-error-class","org.apache.solr.common.SolrException"], "msg":"Can't create collection alias
| for collections='xdb_rebuild_internal', 'xdb_rebuild_internal' is not an existing collection or
| alias", "code":400}}
Updating XConnect ConnectionStrings in 'D:\sitecore[sitecore.cm](http://sitecore.cm/)\sitecore.xconnect\App_Config\ConnectionStrings.config' file
Write-Error: C:\pkgs\searchstax-sitecore-plugin-1.15\searchstax-sitecore-plugin-1.15\src\searchstax-sitecore-xconnect.ps1:74
Line |
74 | Update-XML $path $xpath $attributeKey $attributeValue
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| Could not find D:\sitecore[sitecore.cm](http://sitecore.cm/)\sitecore.xconnect\App_Config\ConnectionStrings.config File
Updating XConnect ConnectionStrings in 'D:\sitecore[sitecore.cm](http://sitecore.cm/)\sitecore.xconnect\App_Data\jobs\continuous\IndexWorker\App_Config\ConnectionStrings.config' file
Write-Error: C:\pkgs\searchstax-sitecore-plugin-1.15\searchstax-sitecore-plugin-1.15\src\searchstax-sitecore-xconnect.ps1:74
Line |
74 | Update-XML $path $xpath $attributeKey $attributeValue
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| Could not find
| D:\sitecore[sitecore.cm](http://sitecore.cm/)\sitecore.xconnect\App_Data\jobs\continuous\IndexWorker\App_Config\ConnectionStrings.config File
Get-Content: C:\pkgs\searchstax-sitecore-plugin-1.15\searchstax-sitecore-plugin-1.15\src\searchstax-sitecore-xconnect.ps1:86
Line |
86 | $json = Get-Content -Raw -Path $path
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| Cannot find path 'D:\sitecore[sitecore.cm](http://sitecore.cm/)\sitecore.xconnect\App_Data\solrcommands\schema.json' because
| it does not exist.
https://ss856956-knf6sz36-us-west-2-aws.searchstax.com/solr/
Updating XDB Schema ...
xdb_internal
Invoke-RestMethod: C:\pkgs\searchstax-sitecore-plugin-1.15\searchstax-sitecore-plugin-1.15\src\searchstax-sitecore-xconnect.ps1:102
Line |
102 | Invoke-RestMethod -Uri $url -ContentType 'application/jso …
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| Error 404 Not Found HTTP ERROR 404 Problem accessing /solr/xdb_internal/schema. Reason: Not
| Found
xdb_rebuild_internal
Invoke-RestMethod: C:\pkgs\searchstax-sitecore-plugin-1.15\searchstax-sitecore-plugin-1.15\src\searchstax-sitecore-xconnect.ps1:102
Line |
102 | Invoke-RestMethod -Uri $url -ContentType 'application/jso …
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| Error 404 Not Found HTTP ERROR 404 Problem accessing /solr/xdb_rebuild_internal/schema. Reason:
| Not Found
Restarting IIS
NOTE: If you have UAC enabled, then this step might fail with 'Access Denied' error.
Please either disable UAC, or restart IIS manually if the error occurs.
Keep xConnect schema file in the same zip directory as the same way other Solr configs are.
Add support for XDB Indexes
I propose the scripts to be re-organised, so that it no longer needs an external yaml file, rather all the parameters can be passed in via script arguments instead. This will allow a user to run this on their developer PC, as well as on a CI / CD tool like Azure DevOps. Here is how I will break it down.
I will progressively work through this.
With the release of Experience Edge and its associated connector, an additional Solr collection is required for this connector to function.
https://doc.sitecore.com/en/developers/101/developer-tools/the-experience-edge-connector.html
Requirements:
User should be able to specify:
Sitecore version (This exists already)
Configuration Mode (XM, XP, XCONNECT) (This exists already)
If SXA is required (This exists already)
If XConnect is required (This exists already)
If SwitchOnRebuild is enabled for Sitecore indexes (New)
Custom Index name (New)
Prospect ran Sitecore Plugin, got an error saying that it could not overwrite an existing configset. (Our Zookeeper API "create" will not overwrite a configset.) Prospect was running the plugin in XCONNECT mode, and an existing xDB configset broke it.
Suggest either (1) fix the Zookeeper API "create" method to overwrite like zkcli does, or
(2) fix Plugin to delete existing configsets before writing new ones. BDC
Currently this can be run in On-Premise or Remotely modes. New implementation will only be for Remotely mode.
Criteria:
If a user runs this script with on-premise Sitecore, the changes to Sitecore configuration files should not happen.
"If you only access nodes of SolrCloud within a private network, set the ContentSearch.IndexingManager.DisplayShortStatistic setting to true. This eliminates direct requests to the nodes used to display additional index statistics in the Indexing Manager Wizard."
Enhance the script to set this to true for SItecore versions 10.0 and above
For easier maintainability of Sitecore version support, download the default_ config from an existing Solr deployment, modify that and re-upload it when creating new configs with connector
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.