6

Setup:

  1. I created the following:

    • a list (named Category) at the top-level site,
    • a Lookup site column (SC) (named Category) on Category, which allows multiple selections, and
    • a Document-based content type (named Categorized Document) with the additional Category column added.
  2. On the top-level site (Parent) AND on a subsite (Child), I added the Categorized Document content type to Shared Documents and removed Document from the list content types.

  3. I mapped RefinableString00 to the Crawled Property created for my site column (ows_Category).

  4. I added three (3) items to the Category list, with Titles of "White," "Red," & "Blue."

  5. I uploaded multiple documents to both document libraries and randomly chose Category values for some of them: each document has zero (0), one (1), two (2), or three (3) Category values.

  6. In Security & Compliance, I created a Content search on RefinableString00:White and added filters on File type equals any of doc; docx; xls; xlsx; pdf:

    • RefinableString00:White‎(c:c)‎‎(filetype="doc")‎‎(filetype="docx")‎‎(filetype="xls")‎‎(filetype="xlsx")‎‎(filetype="pdf")‎

Issue:

When I run the query, it finds all of the documents from both Shared Documents libraries, ONLY where Category="White," not if it's "White" and something else.

Question:

What do I change to make sure it finds all of the documents where Category includes "White," even if it also includes other values?

Answer:

Marko Tica's syntax was super helpful to getting me closer to the final answer:

RefinableString00:{White}‎(c:c)‎‎(filetype="doc")‎‎(filetype="docx")‎‎(filetype="xls")‎‎(filetype="xlsx")‎‎(filetype="pdf")‎

In the case of a string with spaces (e.g. "Red and Blue"), the following worked:

RefinableString00:{Red}‎{and}{Blue}(c:c)‎‎(filetype="doc")‎‎(filetype="docx")‎‎(filetype="xls")‎‎(filetype="xlsx")‎‎(filetype="pdf")‎

Notes:

  1. Marko's answer included {|…} around the entire query, which is probably very helpful when working with Search. Security & Compliance's Content search wouldn't accept it, and it ultimately wasn't needed.
  2. Marko's answer also wrapped the search text in "", which also returned no results. I haven't tested this with other 'Refinable' types, but my assumption is that because it's a RefinableSTRING, the quotes weren't needed to type the query. Even in the case of a string (e.g. "Red and Blue"), the quotes weren't needed; instead, wrap each word in the phrase with {} IN ORDER to search on the phrase.
  • Let us know if you find a solution because I am going to have to deal with this soon in a project... – mannaggia Oct 18 '17 at 11:05
  • 2
    Can you use the SharePoint Query Tool and check what the value for RefinableString00 is for a document which has more than one value in it? – Mikael Svenson Oct 23 '17 at 10:33
4
+50

Try with this

{|ManagedProperty:{QueryVariable}}

Query would be something like this

{|RefinableString00:{"White"‎}}

LINK

Query variables with multiple values Query variables can contain multiple values, and by using the syntax {|ManagedProperty:{QueryVariable}} or {|{QueryVariable}}

The expansion will be made using the OR operator, and there is no option for AND expansion. If a user has set the Ask me about field on the user profile to: SharePoint, Search and Apps, then the transformation

{|{User.SPS-Responsibility.Name}}

expands into

((SharePoint) OR (Search) OR (Apps))

Working syntax

RefinableString00:{White}
| improve this answer | |
  • 1
    Did you try with {|RefinableString00:{"White"‎}} – Marko Tica Oct 23 '17 at 16:42
  • 4
    Thanks, Marko! +50 for you because it was the most helpful. Here's the actual syntax that worked: RefinableString00:{White} No {} around the whole thing, no "" around the value. – Jim Bob Howard Oct 23 '17 at 19:12

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.