wasn't able to find this in documentation. Does Azure search use lexicographical order for sorting or would that be something else ?
Related
We have some products that heavily rely on azure cognitive search, it is a good product, but gradually we got quite a lot of problems with it, including:
You can't scale up or scale down without deleting the whole instance.
You can't use pipeline to create/update indexes unless you call it using web api. Modifying/delete field in an index is also not straightforward.
No data replication between search instances.
No cross index query even in the same instance.
No case insensitive search
Suggestions for above have been sitting in Microsoft's suggestion site for years and nothing was every done to address it. I really have no idea when or ever Microsoft will bother to provide better service.
As a result, I am starting to look around for alternative products (looking at elastic search at the moment). Is there any product that supports search syntax translation that make the migration easier (so we don't have to break so many things)?
I am using a custom scoring profile and would like to know what made one document score higher than others for debugging purposes. Is there a special field I can include on the $select or a parameter to pass in to the request? This would help me play around with boosting and weights given my data source
There isn't a way today in Azure Search to get any sort of explanation for how documents are scored, regardless of whether or not the scoring profile is the default one or a custom option. You can vote for that feature here if you think it would be useful. For now, I would just do your best to review our documentation on scoring profiles and continue to tweak your scoring profile until you see the results you expect to.
I am currently working on a solution for searching brand names, so far we have about 10M different brands and we are using Google Cloud Search API. We are currently indexing the 3-grams for each brand name, getting an user query and again extracting the 3-grams, then we search for documents containing all the 3-grams.
What we would like to do is to find not only documents having all 3-grams but also documents having at least one and sorting the results by the number of matches. Would it be possible to do that using the Google Cloud Search API? Or should I be looking into something like Elastic Search?
Best.
For anyone on a similar situation we ended up using Elastic Search and it has proven to be a lot more flexible than Google Full Text Search.
And even thought searching for a limited amount of N-grams was not possible Elastic allows edit distance queries which helped us to find misspellings and similar words which was essential in our use case.
We also noticed a great improvement on the search speed and specially on indexing.
I am trying to move my website from SQL server to Azure Search (or at least the core searching functionality). I believe I understand how to get most of the functionality rebuilt but I'm stuck on one feature that is key to my site.
I would like to be able to sort the search results based on the weight on any of a fairly large number of tags. By weight, I mean that I maintain a count of the number of users that have tagged a document with a particular tag.
It looks like you can do this in elasticsearch: (Elastic search - tagging strength (nested/child document boosting)). But that uses features of elasticsearch that aren't exposed in Azure Search.
I don't see a way to use scoring profiles (https://msdn.microsoft.com/en-us/library/azure/dn798928.aspx) to do this either.
The only thing I can see that might work in a limited sense is to add a field for each tag that I want to sort on. This might work for my particular case for now, but in the long run I'd like to make this work for user-defined tags.
Is this possible in the broad sense that is outlined in the elastic search case?
I agree that for right now, the best way to do this would be to have a separate field that is periodically updated with the count of the # of users that have tagged a document. Please note that you can be pretty efficient with this update by just posting this numeric value using merge or mergeOrUpload. If you would like to see this feature added to Azure Search, it would be great if you could cast your vote.
Is there any way through Elastic Search or Lucene metadata, to store a count of how many times a particular document has satisfied queries even though one has not recalled the document for processing.
For example, say you issue a query and get 100 results. You process the first 10 and not go any further. We would like to flag ALL the documents (100) that satisfied the search criteria for later analysis.
Thanks
Currently, Azure Search does not expose this information (and neither does Elasticsearch or Lucene). However, we're working on building better ranking models, and we're thinking about capturing (and potentially exposing) this type of data.
We'd be very interested in learning more about your scenario. Could you email me at eugenesh at the usual Microsoft domain? Thanks!