Uploaded image for project: 'OASIS Open Data Protocol (OData) TC'
  1. OASIS Open Data Protocol (OData) TC
  2. ODATA-1100

Add mechanism for specifying match type for $search

    XMLWordPrintable

    Details

    • Type: Improvement
    • Status: Closed
    • Priority: Major
    • Resolution: Won't Fix
    • Affects Version/s: V4.01_CSD02
    • Fix Version/s: None
    • Component/s: Protocol
    • Labels:
      None
    • Proposal:
      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
    • Resolution:
      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.

      Description

      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.

        Attachments

          Activity

            People

            • Assignee:
              mark.biamonte Mark Biamonte
              Reporter:
              mark.biamonte Mark Biamonte
            • Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: