SharePoint KeywordQuisery Recherche retourne moins de résultats que Par défaut SharePoint Search

sharepoint.stackexchange https://sharepoint.stackexchange.com//questions/90261

  •  10-12-2019
  •  | 
  •  

Question

J'ai une exigence dans laquelle je souhaite obtenir les résultats de la recherche par programme.Pour cela, j'utilise des mots clés pour rechercher par programme.Mais ici, je reçois moins de résultats que la recherche par défaut SharePoint, il omet des enregistrements des résultats.

Voici le code que j'utilise

    SPSite site = SPContext.Current.Site;
    KeywordQuery objkeywordquery = new KeywordQuery(site);
    objkeywordquery.QueryText = strQuery;
    objkeywordquery.SelectProperties.Add("Title");
    objkeywordquery.SelectProperties.Add("Path");

    objkeywordquery.ResultsProvider = SearchProvider.Default;
    objkeywordquery.ResultTypes = ResultType.RelevantResults;
    objkeywordquery.RowLimit = 5000
    ResultTableCollection queryResults = objkeywordquery.Execute();
    ResultTable queryResultsTable = queryResults[ResultType.RelevantResults];

    DataTable queryDataTable = new DataTable();

    queryDataTable.Load(queryResultsTable, LoadOption.OverwriteChanges);

F Je reçois 100 résultats dans la page de recherche SharePoint Rechercher des réelles, avec le même QueryText, je reçois 96-97 résultats.Quelqu'un peut-il m'aider avec ce

Était-ce utile?

La solution

Try setting TrimDuplicates = false; http://msdn.microsoft.com/en-us/library/microsoft.office.server.search.query.query.trimduplicates.aspx

SPSite site = SPContext.Current.Site;
KeywordQuery objkeywordquery = new KeywordQuery(site);
objkeywordquery.QueryText = strQuery;
objkeywordquery.SelectProperties.Add("Title");
objkeywordquery.SelectProperties.Add("Path");

objkeywordquery.ResultsProvider = SearchProvider.Default;
objkeywordquery.ResultTypes = ResultType.RelevantResults;
objkeyworkquery.TrimDuplicates = false;
objkeywordquery.RowLimit = 5000
ResultTableCollection queryResults = objkeywordquery.Execute();
ResultTable queryResultsTable = queryResults[ResultType.RelevantResults];

DataTable queryDataTable = new DataTable();

queryDataTable.Load(queryResultsTable, LoadOption.OverwriteChanges);
Licencié sous: CC-BY-SA avec attribution
Non affilié à sharepoint.stackexchange
scroll top