The April meeting of the Queen City Sitecore User Group was held yesterday on April 10, 2019. We explored using Solr eDisMax with Sitecore and Azure PaaS while we snacked on pizza.
Sitecore Solr Search with eDisMax
Did you know that Solr has a built in query parser named eDisMax? Steven Striga told us all about it. Steven gave us a run down of eDisMax features, why they chose to use it and showed off a demo site that he built out to show case some of the functionality.
I was impressed with some of the built in eDisMax features because I've had to manually code some of those same features myself in the past so the prospect of having these enabled out of the box is really appealing.
Here are some of the notes I took during the presentation but check out Steven's post for a more in depth run down.
- eDisMax is an improved version of DisMax. Use eDisMax.
- Great for keyword search with some Google-esque features.
- Boosting is supported.
- Stop words are supported.
- Supports full Lucene queries
- Built into Solr! Check of eDisMax to get started then pass in a query and fields eDisMax should consider to execute a basic query.
- Multi-phrase support is great.
- eDisMax is more stable in edge cases. For example, if a user entered in "and" or "or", Solr may misinterpret these words and think they are operators. This isn't an issue in eDisMax.
- Sitecore 9 natively supports eDisMax.
- You have to take a dependency on SolrNet, which the Sitecore Solr implementation wraps. You can pass in "deftype": "edismax" to SolrNet to indicate you want to use it. You then leverage Query<T> on
IProviderSearchContextand pass in your queries instead of using the Sitecore Linq query builder.
- If you can't upgrade to Sitecore 9, consider creating another IIS site to act as a middle man to execute your Solr queries if you're interested in using eDisMax before Sitecore 9.
- Solr can highlight term matching if you ask it to.
- debugQuery provides scoring.
- [explain] in the "fl" field provides a breakdown on how a score was calculated.
- Filters do not impact scoring.
Discover the Wild World of Sitecore on Azure PaaS
This presentation was quite an adventure. Grant Killian took us on quite a tour of the Azure PaaS landscape and a lot of the Azure components that we would encounter if we were deploying our sites on Azure. Grant gave us an overview of each feature and pointed out an chupacabras (read: gotchas) that we might experience if we went on our own unguided journey.
Here are some of my notes that I took from the presentation:
- PaaS is Azure specific
- Kudu is an open source tool that Microsoft has enabled on Azure. We reviewed how we can use to browse the files on our App Service. Could be useful for browsing logs. Also lets you download/upload files to your website directory.
- App Service Editor is essentially Visual Studio Online.
- If you're editing a file with App Service Editor, your files will save as you type which could cause you some pain if you're editing a config file or something that could cause your app pool to recycle.
- There's a really pretty metrics screen with performance graphs and we walked through some of these graphs.
- Diagnostic Logs are displayed in real time. Can also display log4net log entries.
- App Insights has its own query language. Conditions are pipe delimited. You can execute these queries in App Insights.
- AzureTools exists and is provided by Sitecore. You can access your logs and diagnostic information using it. It's an ASPX page that doesn't rely on Sitecore to operate.
- redis-cli can be used to execute Redis operations.
- You can execute the "slowlog" command to discover slow running Redis queries.
- Azure Search has a 1000 field limit. No official workarounds, only experimental ones.
- Secondary Indexes are used during rebuilds, rebuilds item by item instead of using indexers.
- You can scale up your search index by increasing replicas and partitions.
- Always look out for chupacabras.
Both presentations were great and done by regulars of the Manchester user group. Be sure to stop by if you're ever in the area and want to learn more about Sitecore.