2

I want to apply Search functionality only on Custom List in SharePoint using Rest API or CAML query.

  • I already tried that rest api example:

    $.getJSON("https://SharePointURL/_api/search/query?
    querytext='QueryText*+Path:https://SharePointListPath", function(data){
        console.log(data);
    });
    

but it take too much of JSON data. Therefore any example to make it simple.

Visit this URL: Calling SharePoint Search Using Rest

Go through this code:

function getSearchResultsUsingREST(queryText) {
    // search can use the app web URL as the base, so no need to use SP.AppContextSite(@target) to access the host web..
    var searchUrl = _spPageContextInfo.webAbsoluteUrl + "/_api/search/query?querytext='" + queryText + "'";
    var executor = new SP.RequestExecutor(_spPageContextInfo.webAbsoluteUrl);
    executor.executeAsync(
        {
            url: searchUrl,
            method: "GET",
            headers: { "Accept": "application/json; odata=verbose" },
            success: onGetSearchResultsSuccess,
            error: onGetSearchResultsFail
        }
    );
}

function onGetSearchResultsSuccess(data) {
    var jsonObject = JSON.parse(data.body);
    var results = jsonObject.d.query.PrimaryQueryResult.RelevantResults.Table.Rows.results;
    if (results.length == 0) {
        $('#related-content-results').text('No related documents were found');
    }
    else {
        var searchResultsHtml = '';
        $.each(results, function (index, result) {
            searchResultsHtml += "<a target='_blank' href='" + result.Cells.results[6].Value + "'>" + result.Cells.results[3].Value + "</a> (" + result.Cells.results[10].Value + ")<br />";
        });
        $('#related-content-results').html(searchResultsHtml);
    }
}

function onGetSearchResultsFail(data, errorCode, errorMessage) {
    $('#related-content-results').text('An error occurred whilst searching for related content - ' + errorMessage);
}

but var results take 48 cells which doesn't contain Custom List field.

Thanks for help!

1

You have to call the REST endpoint for additional Fields explicitly with:

&selectproperties=[internalName],[internaleName]

SharePoint endpoint and Search documentation

Search has different syntax

iSearch

  • Please! put some code rather than link. – Utkarsh Dubey Jun 8 '17 at 8:58
  • Okay, that selectproperties IS code. It is clear you know nothing about REST endpoints and are probably copy/pasting code you do not understand. RTFM! – Danny '365CSI' Engelman Jun 8 '17 at 9:00
  • What [internalName] suppose to. Is it custom field name inside custom list. – Utkarsh Dubey Jun 8 '17 at 9:04
  • Read the F* Manual – Danny '365CSI' Engelman Jun 8 '17 at 9:05

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.