Forum Discussion
Nov 21, 2017
SharePoint Search
Today my customer reported an issue with search in SharePoint Online. They have a search box web part, a search result web part and a refinement panel:
RefinableString00 is mapped to a Client Code field.
Within the Refinement panel I'm seeing 16 results for client code "XYZ123". This is the expected result.
When I search for XYZ123 I'm getting just 1 result returned ( I checked the show duplications setting in the web part and that is fine)
Then I typed in my search box the following:
"RefinableString00:XYZ123"
and now I'm getting 16 results returned. Any ideas why the search query without RefinableString00: returns 1 result where the query with RefinableString00: returns 16. Wouldn't the query without RefinableString00: search through every column available for searching?
Just to complete this issue. I've created a PowerShell script that touches all the list items in my site collections, so that search will pick up these items. Problem resolved for me! Not sure how this customer got into this situation though.
The script can be found below:
$cred = Get-Credential -Message "Password" -UserName admin@mytenant.onmicrosoft.com Connect-PnPOnline -Url https://mytenant-admin.sharepoint.com -Credentials $cred $sites = Get-PnPTenantSite | where { $_.Url -like "https://mytenant.sharepoint.com/teams*"} foreach ( $site in $sites) { Connect-PnPOnline -Url $site.Url -Credentials $cred $web = Get-PnPWeb $list = Get-PnPList -Web $web | Where { $_.Title -eq "MyList" } $listItem = Get-PnPListItem -List $list $listItem.Update(); $web.Context.Load($listItem); $web.Context.ExecuteQuery(); $listItem }
- Mikael SvensonSteel Contributor
This is not necessarily weird. If you have a regular list column, and map the crawled property for this column to RefinableString00, you effectively remove the content in that column as being full-text searchable. RefinableString00 is not a searchable managed property.
If it's a site column, you should get the same results as the ows_q_col crawled property is searchable, while you map the ows_col and make it non searchable.
I have a table at http://www.techmikael.com/2014/07/what-makes-sharepoint-column-searchable.html which shows how this works.
- Paul MartelloBrass Contributor
Hey
Mikael,
I am having a heck of a time retrieving search results (i.e., data from lists) from my communication site landing page. If I were to go to site contents, and plop something into the search box, then all results come back. My gut is telling me this may have something to do with managed/crawled properties. Finally, the drop-down selections (this site, everything, people, etc) do not appear in the search box on the landing/Home page as well. They do, however, appear when accessing a library, site contents, etc. I have admin privilieges, but have not been able to solve the problem. Any ideas?
Thanks much,
Paul
- Mikael SvensonSteel Contributor
Paul Martello was there a question in there? :) As for scoped search in the search box, this is not possible and there is a user-voice out there to allow us to pick what that box searches in.
My gut feel is that the magic behind the modern search box puts some filters on what is actually returned, where as the classic box does not.
HI Mikael Svenson,
that is what I originally thought too as I inspected the RefinableString00 property. But Then I wouldn't have expected the "RefinableString00:XYZ123" to give the correct result either. Unless of course searching for "RefinableString00:XYZ123" isn't considered to be searching.
also the crawled property is marked as
- Mikael SvensonSteel Contributor
Correct, mp:something is a property query, not full-text search. Full-text(free text) search is the searchable property, while a property query is the queryable property of a managed property.
- Deleted
It looks like something is not going ok with the search but what good question have you tried to search on the crawled property?
Hi Deleted,
I might have found the problem.
I just forced a recrawl of one of the lists ( list settings -> advanced settings -> reindex list ) and now data from that list is appearing.
So I'm guessing that the following has happened in this order:
1. The many lists containing the data were created.
2. The data was added.
3. The Managed Property RefinableString00 was mapped.
4. The only list that was showing data was created
5. The continuous crawl picked up the data form the new list.
I will now have a look at forcing the reindexing on the other lists as well.
I still don't understand however why specifically searching on RefinableString00 does work and General searching does not work
Just to complete this issue. I've created a PowerShell script that touches all the list items in my site collections, so that search will pick up these items. Problem resolved for me! Not sure how this customer got into this situation though.
The script can be found below:
$cred = Get-Credential -Message "Password" -UserName admin@mytenant.onmicrosoft.com Connect-PnPOnline -Url https://mytenant-admin.sharepoint.com -Credentials $cred $sites = Get-PnPTenantSite | where { $_.Url -like "https://mytenant.sharepoint.com/teams*"} foreach ( $site in $sites) { Connect-PnPOnline -Url $site.Url -Credentials $cred $web = Get-PnPWeb $list = Get-PnPList -Web $web | Where { $_.Title -eq "MyList" } $listItem = Get-PnPListItem -List $list $listItem.Update(); $web.Context.Load($listItem); $web.Context.ExecuteQuery(); $listItem }
RefinableString00 is my Managed property that is mapped to my crawled property. I don't think that it is possible to search directly on the Crawled property name or am I missing something?