Azure Search
Azure Search is a search-as-a-service solution that allows developers to incorporate a sophisticated search experience into web and mobile applications without having to worry about the complexities of full-text search and without having to deploy, maintain or manage any infrastructure
-
Support case-insensitive comparison in filters
Searching with text=<xyz> performs a case-insensitive search. However, testing string fields in filters is case-sensitive. There should be a way to do a case-insensitive string comparison in filter expressions.
378 votes -
Support hierarchical facets
Searching in a hierarchy is very common.
E.g. Cars/Ford/Accessories347 votesIn the meantime, please see this page for details on how to do this: http://blogs.technet.com/b/onsearch/archive/2015/09/09/multi-level-taxonomy-facets-in-azure-search.aspx
-
Case-insensitive sorting for string fields
When querying the index, is it possible to do a case-insensitive $orderby on a string field? For example, we want to sort results by username but preserve the user's choice of casing. While we could workaround this by keeping a normalized version of the username alongside the original data, having this feature built-in would obviously be preferable.
282 votes -
Search multiple indexes at once
The underlying elasticsearch technology supports making a single search query that searches and ranks results over multiple disparate indexes at once[1], but this functionality is not surfaced through the Azure Search APIs.
Adding this would allow a single search to span over indexes with different schemas combined in a single correctly ordered result set.
[1]: https://www.elastic.co/guide/en/elasticsearch/reference/current/multi-index.html
238 votes -
Add support for field collapsing
I've utilized field collapsing (aka result grouping) quite a bit utilizing Solr. Being able to group results together by a common element, then being able to page and sort based on that result list.
109 votes -
Support custom dictionary
Some domestic senario like, Legal, really domestic topic require custome dictionary for more accurate wordbreaking, stemming and normalization. I think custome dictionary with easy maintemance like SharePoint or FAST provide today is help this type of senario.
87 votesThis item has been marked as Started by mistake. We don’t have a short-term plan to deliver this feature but it is on our roadmap.
-
Support 'skip' in facet queries
Currently the results of facet queries can be limited adding the "count:n" parameter to select only the top n results.
If one is interested in seeing all results of a facet query, there is no other way than setting the 'count' value sufficiently high to make sure that all result are included in the response.
In the scenario of a large number of distinct values for the facet field those queries may, however, result in a large response with poor performance.
In order to be able to provide paging through facet results for better performance, it's necessary to have a…78 votes -
Support Explain API
The explain api computes a score explanation for a query and a specific document. This can give useful feedback whether a document matches or didn’t match a specific query.
73 votes -
Allow handling spelling errors in search "Did you mean ''?"
It would be really nice to have spell check and auto correct as part of search.
73 votes -
Support geo.distance in select result
Azure Search does not support returning the distance data from geo.distance in search results. geo.distance can be used in only filter and orderby.
I would like to get distance data from geo.distance.
67 votes -
Add OData syntax support for startswith, contains, and endswith queries
This is essentially a duplicate of another suggestion: https://feedback.azure.com/forums/263029-azure-search/suggestions/6470849
The original suggestion mentioned odata support, and while it was marked as complete, it was only added to lucene searches.
I'm sure many of the 178 votes where for specifically odata support.
55 votes -
Improve collection matching expressions
Currently, collection matching only supports simple equality for the 'any' option and inequality for the 'all' option.
I would like to be able match a collection against a set of values instead of testing a single match individually and then combining the results as shown below
$filter=tags/any(t: t eq 'x') and tags/any(t: t eq 'y')
Additionally, it would also be useful to have the capabilities to include simple boolean logic within the lambda to craft expressions that match a collection item against slightly more complex logic for example:
$filter=tags/any(t: t eq 'x' or t eq 'y')
46 votesWe are currently working on expanding the filter syntax available inside lambda expressions (‘any’ and ‘all’). This work is part of the work on Complex Types (currently the highest-voted User Voice item for Azure Search).
Regarding the specific examples in this post, the second example is now possible using the new search.in function. For example, this:
$filter=tags/any(t: t eq ‘x’) or tags/any(t: t eq ‘y’)Can now be written like this:
$filter=tags/any(t: search.in(t, ‘x,y’))In the future we will also be directly supporting ‘or’ inside any/all. We will also support ‘and’ inside any/all for complex types and some primitive types, but not for collections of strings, so the example in the post above using ‘and’ will still be the only way to write that particular query.
The ETA for these filter syntax changes is the same as for Complex Types, since we are delivering them together. See this post for…
-
29 votes
The feature is available as a preview in our latest preview API.
For more details, please look for ‘moreLikeThis’ search parameter on https://azure.microsoft.com/en-us/documentation/articles/search-api-2015-02-28-preview/
-
Disable or replace TF-IDF for relevance computing
(Posting on behalf of Xu Lan)
To fit the needs of our search application, we would like to change the relevance computing by disabling or replacing TF-IDF.
Elasticsearch provides a mechanism to ignore TF-IDF: https://www.elastic.co/guide/en/elasticsearch/guide/current/ignoring-tfidf.html#ignoring-tfidf.28 votes -
Provide ability of collection Type field to be searched against individual values separately
For a document, where there are multiple values in its collection type column, it gives it lesser score (and hence either to come lower or may not even come in the result) to it even though the search query has matched with ONE of the values in the list COMPLETELY.
This is because, currently Azure Search considers list of all the values provided in the collection type as a single string by concatenating all of them.
My requirement is that if the search query (for that field) matches with any of the values in the collection, it should consider it…27 votes -
Improve Faceting accuracy by having an option to count all records
For fields that have a large distinct value diversity, the faceting feature gives inaccurate results unless the count parameter is set to a number greater than the number of distinct values in a field. There should be an option in an index field that indicates to the search engine to count and facet all the values in a column. I realize this would hurt performance so it should be optional. But sometimes accuracy is more important than raw performance for consumers of your service.
25 votes -
Provide option to facet on all facetable fields in a Search request
Some applications can have a large number of facets and it is inconvenient to have to specify them all explicitly in the Search API, as reported here: http://stackoverflow.com/questions/28542665/azure-search-what-if-i-have-a-lot-of-facets
If there were an option like facet=* that returned facets on all facetable fields, that would be easier for such cases.
25 votes -
Implement other highlighters
Right now only Postings highlighter is implemented, which highlights single terms instead of full phrase query. Would be good to have other highlighters.
As said here : https://stackoverflow.com/questions/42411353/azure-search-highlights-for-phrases-with-double-quotes23 votes -
Provide sum and average on facet
It would be nice to have agregation on certain facetable Field.
We would define another numeric field to be computed.On the FacetResult, we could get sum and average exactly in the same way as count.
20 votes -
Provide method for escaping characters in the search string like UrlEscape
Special characters must be escaped to be used as part of the search text. You can escape them by prefixing them with backslash (\). Special characters that need to be escaped include the following:
+ - && || ! ( ) { } [ ] ^ " ~ * ? : \ /
Is there a built in method, basically the equivalent of UrlEscape, which can do this, or is every developer actually expected to do their own implementation?12 votes
- Don't see your idea?