Add mechanism for specifying match type for $search

    • Type: Improvement
    • Resolution: Won't Fix
    • Priority: Major
    • None
    • Affects Version/s: V4.01_CSD02
    • Component/s: Protocol
    • None
    • Hide

      Add “search modifiers” which consist of a letter sequence immediately followed by a colon and immediately followed by anything except space, parentheses, and an ampersand

      searchTerm = searchModifier / [ 'NOT' RWS ] ( searchPhrase / searchWord )
      searchPhrase = quotation-mark 1*qchar-no-AMP-DQUOTE quotation-mark

      searchModifier = searchOperator COLON searchOperand
      searchOperator = 1*ALPHA
      ; A searchOperand is a sequence of anything except ampersand, space, and parentheses, in clear-text or percent-encoded
      ; Expressing this in ABNF is somewhat clumsy, so the following rule is overly generous.
      searchOperand = 1*qchar-no-AMP-parens

      This would allow expressing e.g. a fuzziness factor or a matching algorithm

      $search=hello fuzzy:0.8 match:synonym

      Alternative: restrict search operands to search phrases (enclosed in double quotes) and search words:

      searchOperand = searchPhrase / searchWord

      Show
      Add “search modifiers” which consist of a letter sequence immediately followed by a colon and immediately followed by anything except space, parentheses, and an ampersand searchTerm = searchModifier / [ 'NOT' RWS ] ( searchPhrase / searchWord ) searchPhrase = quotation-mark 1*qchar-no-AMP-DQUOTE quotation-mark searchModifier = searchOperator COLON searchOperand searchOperator = 1*ALPHA ; A searchOperand is a sequence of anything except ampersand, space, and parentheses, in clear-text or percent-encoded ; Expressing this in ABNF is somewhat clumsy, so the following rule is overly generous. searchOperand = 1*qchar-no-AMP-parens This would allow expressing e.g. a fuzziness factor or a matching algorithm $search=hello fuzzy:0.8 match:synonym Alternative: restrict search operands to search phrases (enclosed in double quotes) and search words: searchOperand = searchPhrase / searchWord
    • Hide

      This issue was closed with no action. The feed back from users was that defining our own syntax in the $search query parameter was not desired. Users would rather use the syntax defined by existing popular search engines vs OData defining yet another one. Issue ODATA-1113 Allow alternate / native search syntax was created for the 4.02 specification to investigate this further.

      Show
      This issue was closed with no action. The feed back from users was that defining our own syntax in the $search query parameter was not desired. Users would rather use the syntax defined by existing popular search engines vs OData defining yet another one. Issue ODATA-1113 Allow alternate / native search syntax was created for the 4.02 specification to investigate this further.

      When doing text searches, many of the common algorithms we use have a number of different ways to define a match (Exact match, begins with, synonym, base word or inflection, etc). The spec currently says it is up to the implementation as to what constitutes a match, this is fine, but in the case where the search algorithm provides different matching types it would be nice if the query writer could specify the type of match they want in the $search expression.

            Assignee:
            Mark Biamonte (Inactive)
            Reporter:
            Mark Biamonte (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: