Search samples
Basics
Most methods use QueryParams here there're some clues about how using it.
| Variables | Type | Allow wildcards | Restrictions | Description | 
|---|---|---|---|---|
| domain | long | No. | Available values: 
 By default the value is set to QueryParams.DOCUMENT. For searching documents and folders use value:  | Restrict the search to a node type. | 
| author | String | No. | The value must be a valid userId. | Filter by creator user. | 
| name | String | Yes. | 
 | Filter by node name. | 
| keywords | List<String> | Yes. | 
 | Filter by keywords. | 
| categories | List<String> | No. | Values should be categories UUID, not use path value. | Filter by categories. | 
| content | Yes. | Filter by binary content. | ||
| mimeType | No. | The value should be a valid and registered MIME type. Only can be applied to a documents node. | Filter by document MIME type. | |
| path | No. | When empty is used by default "/okm:root" node. | Filter by a folder. | |
| lastModifiedFrom | Calendar | No. | Filter by nodes created after a date. | |
| lastModifiedTo | Calendar | No. | Filter by nodes created before a date. | |
| mailSubject | String | Yes. | Only applies to mail nodes. | Filter by mail subject field. | 
| mailFrom | String | Yes. | Only applies to mail nodes. | Filter by mail from the field. | 
| mailTo | Yes. | Only applies to mail nodes. | Filter by mail to the field. | |
| properties | Dictionary<String, String> | Yes on almost. | On metadata field values like "date" cannot be applied wildcards. The dictionary of the properties is composed of pairs: ('metadata_field_name','metada_field_value") For example: Filtering by a range of dates: When filtering by a range of dates you must set both values ( from and to ), otherwise, the filter will be ignored from OpenKM side. To filtering by a metadata field of type multiple like this: You should do: Where "one" and "two" are valid values and character ";" is used as a separator. | Filter by metadata group values. 
 | 
| The search operation is done only by AND logic. | ||||
Wildcard examples:
| Variable | Example | Description | 
|---|---|---|
| name | test*.html | Any document that starts with the characters "test" and ends with characters ".html" | 
| name | test?.html | Any document that starts with the characters "test" followed by a single character and ends with characters ".html" | 
| name | ?test* | Any the documents where the first character doesn't matter but is followed by the characters, "test". | 
Methods
findByContent
Description:
| Method | Return values | Description | 
|---|---|---|
| findByContent(String content) | List<QueryResult> | Returns a list of results filtered by the value of the content parameter. | 
| The method only searches among all documents, it does not take in consideration any other kind of nodes. | ||
Example:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.openkm.sdk4csharp;
using com.openkm.sdk4csharp.bean;
namespace OKMRest
{
    public class Program
    {
        static void Main(string[] args)
        {
            String host = "http://localhost:8080/OpenKM";
            String username = "okmAdmin";
            String password = "admin";
            OKMWebservice ws = OKMWebservicesFactory.newInstance(host, username, password);
            
            try
            {
                foreach (QueryResult qr in ws.findByContent("test")) 
                {
                    System.Console.WriteLine(qr);
                 }
            } 
            catch (Exception e)
            {
                System.Console.WriteLine(e.ToString());
            } 
        }
    }
}
findByName
Description:
| Method | Return values | Description | 
|---|---|---|
| findByName(String name) | List<QueryResult> | Returns a list of results filtered by the value of the name parameter. | 
| The method only searches among all documents, it does not take in consideration any other kind of nodes. | ||
Example:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.openkm.sdk4csharp;
using com.openkm.sdk4csharp.bean;
namespace OKMRest
{
    public class Program
    {
        static void Main(string[] args)
        {
            String host = "http://localhost:8080/OpenKM";
            String username = "okmAdmin";
            String password = "admin";
            OKMWebservice ws = OKMWebservicesFactory.newInstance(host, username, password);
            
            try
            {
                foreach (QueryResult qr in ws.findByName("?test*")) 
                {
                    System.Console.WriteLine(qr);
                }
            } 
            catch (Exception e)
            {
                System.Console.WriteLine(e.ToString());
            } 
        }
    }
}
findByKeywords
Description:
| Method | Return values | Description | 
|---|---|---|
| findByKeywords(List<String> keywords) | List<QueryResult> | Returns a list of results filtered by the values of the keywords parameter. | 
| The method only searches among all documents, it does not take in consideration any other kind of nodes. | ||
Example:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.openkm.sdk4csharp;
using com.openkm.sdk4csharp.bean;
namespace OKMRest
{
    public class Program
    {
        static void Main(string[] args)
        {
            String host = "http://localhost:8080/OpenKM";
            String username = "okmAdmin";
            String password = "admin";
            OKMWebservice ws = OKMWebservicesFactory.newInstance(host, username, password);
            
            try
            {
                List<string> keywords = new List<string>();
                keywords.Add("test");
                foreach (QueryResult qr in ws.findByKeywords(keywords)) 
                {
                    System.Console.WriteLine(qr);
                }
            } 
            catch (Exception e)
            {
                System.Console.WriteLine(e.ToString());
            }
        }
    }
}
find
Description:
| Method | Return values | Description | 
|---|---|---|
| find(QueryParams queryParams) | List<QueryResult> | Returns a list of results filtered by the values of the queryParams parameter. | 
Example:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.openkm.sdk4csharp;
using com.openkm.sdk4csharp.bean;
namespace OKMRest
{
    public class Program
    {
        static void Main(string[] args)
        {
            String host = "http://localhost:8180/OpenKM";
            String username = "okmAdmin";
            String password = "admin";
            OKMWebservice ws = OKMWebservicesFactory.newInstance(host, username, password);
            
            try
            {
                QueryParams qParams = new QueryParams();
                qParams.domain = QueryParams.DOCUMENT;
                qParams.name = "test*.html";
                
                foreach (QueryResult qr in ws.find(qParams))
                {
                    System.Console.WriteLine(qr);
                }
            } 
            catch (Exception e)
            {
                System.Console.WriteLine(e.ToString());
            } 
        }
    }
}
findPaginated
Description:
| Method | Return values | Description | 
|---|---|---|
| findPaginated(QueryParams queryParams, int offset, int limit) | ResultSet | Returns a list of paginated results filtered by the values of the queryParams parameter. | 
| The parameter "limit" and "offset" allow you to retrieve just a portion of the results of a query. 
 For example, if your query has 1000 results, but you only want to return the first 10, you should use these values: 
 Now suppose you want to show the results from 11-20, you should use these values: 
 | ||
Example:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.openkm.sdk4csharp;
using com.openkm.sdk4csharp.bean;
namespace OKMRest
{
    public class Program
    {
        static void Main(string[] args)
        {
            String host = "http://localhost:8180/OpenKM";
            String username = "okmAdmin";
            String password = "admin";
            OKMWebservice ws = OKMWebservicesFactory.newInstance(host, username, password);
            
            try
            {
                QueryParams qParams = new QueryParams();
                qParams.domain = QueryParams.DOCUMENT;
                qParams.name = "test*.html";
                ResultSet rs = ws.findPaginated(qParams, 20, 10);
                System.Console.WriteLine("Total results:" + rs.total);
                
                foreach (QueryResult qr in rs.results)
                {
                    System.Console.WriteLine(qr);
                }
            } 
            catch (Exception e)
            {
                System.Console.WriteLine(e.ToString());
            } 
        }
    }
}
findSimpleQueryPaginated
Description:
| Method | Return values | Description | 
|---|---|---|
| findSimpleQueryPaginated(String statement, int offset, int limit) | ResultSet | Returns a list of paginated results filtered by the values of the statement parameter. | 
| 
 The syntax to use in the statement parameter is the pair 'field:value'. For example: 
 More information about Lucene syntaxis at Lucene query syntax. 
 The parameter "limit" and "offset" allow you to retrieve just a portion of the results of a query. 
 For example, if your query has 1000 results, but you only want to return the first 10, you should use these values: 
 Now suppose you want to show the results from 11-20, you should use these values: 
 | ||
Example:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.openkm.sdk4csharp;
using com.openkm.sdk4csharp.bean;
namespace OKMRest
{
    public class Program
    {
        static void Main(string[] args)
        {
            String host = "http://localhost:8080/OpenKM";
            String username = "okmAdmin";
            String password = "admin";
            OKMWebservice ws = OKMWebservicesFactory.newInstance(host, username, password);
            
            try
            {
                ResultSet rs = ws.findSimpleQueryPaginated(20, 10, "name:grial");
                System.Console.WriteLine("Total results:" + rs.total);
                
                foreach (QueryResult qr in rs.results)
                {
                    System.Console.WriteLine(qr);
                }
            } 
            catch (Exception e)
            {
                System.Console.WriteLine(e.ToString());
            } 
        }
    }
}
findMoreLikeThis
Description:
| Method | Return values | Description | 
|---|---|---|
| findMoreLikeThis(String uuid, int max) | ResultSet | Returns a list of documents that are considered similar by the search engine. | 
| The uuid is a document UUID. The max value is used to limit the number of results returned. The method can only be used with documents. | ||
Example:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.openkm.sdk4csharp;
using com.openkm.sdk4csharp.bean;
namespace OKMRest
{
    public class Program
    {
        static void Main(string[] args)
        {
            String host = "http://localhost:8080/OpenKM";
            String username = "okmAdmin";
            String password = "admin";
            OKMWebservice ws = OKMWebservicesFactory.newInstance(host, username, password);
            
            try
            {
                ResultSet rs = ws.findMoreLikeThis("c5cb1982-1a99-4741-8a07-a319b9ac3459", 100);
                System.Console.WriteLine("Total results:" + rs.total);
                
                foreach (QueryResult qr in rs.results)
                {
                    System.Console.WriteLine(qr);
                }
            } 
            catch (Exception e)
            {
                System.Console.WriteLine(e.ToString());
            } 
        }
    }
}
getKeywordMap
Description:
| Method | Return values | Description | 
|---|---|---|
| getKeywordMap(String[] filter) | Dictionary<String, Integer> | Returns a map of keywords with its count value filtered by other keywords. | 
| Example: 
 The results filtering by "test" -> "one", "two", "three". The results filtering by "one" -> "test", "two". The results filtering by "two" -> "test", "one". The results filtering by "three" -> "test". The results filtering by "one" and "two" -> "test". 
 | ||
Example:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.openkm.sdk4csharp;
using com.openkm.sdk4csharp.bean;
namespace OKMRest
{
    public class Program
    {
        static void Main(string[] args)
        {
            String host = "http://localhost:8080/OpenKM";
            String username = "okmAdmin";
            String password = "admin";
            OKMWebservice ws = OKMWebservicesFactory.newInstance(host, username, password);
            
            try
            {
               // All keywords without filtering
                System.Console.WriteLine("Without filtering");
                Dictionary<String, int> keywords = ws.getKeywordMap(new String[]{"test", "test2"});
                
                foreach (KeyValuePair<string,int> kvp in keywords)
                {
                     System.Console.WriteLine(kvp.Key + " is used :" + kvp.Value);
                }
                
                // Keywords filtered
                System.Console.WriteLine("Filtering");
                keywords = ws.getKeywordMap(new String[]{"test"});
                
                foreach (KeyValuePair<string,int> kvp in keywords) 
                {
                    System.Console.WriteLine(kvp.Key + " is used :" + kvp.Value);
                }
            } 
            catch (Exception e)
            {
                System.Console.WriteLine(e.ToString());
            } 
        }
    }
}
getCategorizedDocuments
Description:
| Method | Return values | Description | 
|---|---|---|
| getCategorizedDocuments(String categoryId) | List<Document> | Retrieves a list of all documents related with a category. | 
| The values of the categoryId parameter should be a category folder UUID or path. | ||
Example:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.openkm.sdk4csharp;
using com.openkm.sdk4csharp.bean;
namespace OKMRest
{
    public class Program
    {
        static void Main(string[] args)
        {
            String host = "http://localhost:8180/OpenKM";
            String username = "okmAdmin";
            String password = "admin";
            OKMWebservice ws = OKMWebservicesFactory.newInstance(host, username, password);
            
            try
            {
                foreach (Document doc in ws.getCategorizedDocuments("/okm:categories/invoices"))
                {
                     System.Console.WriteLine(doc);
                }
            } 
            catch (Exception e)
            {
                System.Console.WriteLine(e.ToString());
            } 
        }
    }
}saveSearch
Description:
| Method | Return values | Description | 
|---|---|---|
| saveSearch(QueryParams params) | Long | Saves search parameters. | 
| The variable queryName of the parameter params, should have to be initialized. | ||
Example:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.openkm.sdk4csharp;
using com.openkm.sdk4csharp.bean;
namespace OKMRest
{
    public class Program
    {
        static void Main(string[] args)
        {
            String host = "http://localhost:8080/OpenKM";
            String username = "okmAdmin";
            String password = "admin";
            OKMWebservice ws = OKMWebservicesFactory.newInstance(host, username, password);
            
            try
            {
                QueryParams qParams = new QueryParams();
                qParams.domain = QueryParams.DOCUMENT;
                qParams.name = "test*.html";
                
                foreach (QueryResult qr in ws.find(qParams))
                {
                    System.Console.WriteLine(qr);
                }
                
                // Save the search to be used later
                qParams.queryName = "sample search";
                ws.saveSearch(qParams);
            } 
            catch (Exception e)
            {
                System.Console.WriteLine(e.ToString());
            } 
        }
    }
}updateSearch
Description:
| Method | Return values | Description | 
|---|---|---|
| updateSearch(QueryParams params) | void | Updates a previously saved search parameters. | 
| Ir can only be updated as a saved search created by the same user who's executing the method. | ||
Example:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.openkm.sdk4csharp;
using com.openkm.sdk4csharp.bean;
namespace OKMRest
{
    public class Program
    {
        static void Main(string[] args)
        {
            String host = "http://localhost:8080/OpenKM";
            String username = "okmAdmin";
            String password = "admin";
            OKMWebservice ws = OKMWebservicesFactory.newInstance(host, username, password);
            
            try
            {
                foreach (QueryParams qParams in ws.getAllSearchs())
                {
                    if (qParams.queryName.Equals("sample search"))
                    {
                        // Change some value.
                        qParams.name = "admin*.html";
                        ws.updateSearch(qParams);
                    }
                }
            } 
            catch (Exception e)
            {
                System.Console.WriteLine(e.ToString());
            } 
        }
    }
}getSearch
Description:
| Method | Return values | Description | 
|---|---|---|
| getSearch(int qpId) | QueryParams | Gets saved searches parameters. | 
| It can only be retrieved as a saved search created by the same user who's executing the method. | ||
Example:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.openkm.sdk4csharp;
using com.openkm.sdk4csharp.bean;
namespace OKMRest
{
    public class Program
    {
        static void Main(string[] args)
        {
            String host = "http://localhost:8080/OpenKM";
            String username = "okmAdmin";
            String password = "admin";
            OKMWebservice ws = OKMWebservicesFactory.newInstance(host, username, password);
            
            try
            {
                int qpId = 1; // Some valid search id
                QueryParams qParams = ws.getSearch(qpId);
                System.Console.WriteLine(qParams);
            } 
            catch (Exception e)
            {
                System.Console.WriteLine(e.ToString());
            } 
        }
    }
}getAllSearchs
Description:
| Method | Return values | Description | 
|---|---|---|
| getAllSearchs() | List<QueryParams> | Retrieves a list of all saved search parameters. | 
| It can only retrieve the list of the saved searches created by the same user who's executing the method. | ||
Example:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.openkm.sdk4csharp;
using com.openkm.sdk4csharp.bean;
namespace OKMRest
{
    public class Program
    {
        static void Main(string[] args)
        {
            String host = "http://localhost:8080/OpenKM";
            String username = "okmAdmin";
            String password = "admin";
            OKMWebservice ws = OKMWebservicesFactory.newInstance(host, username, password);
            
            try
            {
                foreach (QueryParams qParams in ws.getAllSearchs())
                {
                    System.Console.WriteLine(qParams);
                }
            } 
            catch (Exception e)
            {
                System.Console.WriteLine(e.ToString());
            } 
        }
    }
}deleteSearch
Description:
| Method | Return values | Description | 
|---|---|---|
| deleteSearch(int qpId) | void | Deletes a saved search parameters. | 
| It can only be deleted as a saved search created by the same user who's executing the method. | ||
Example:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.openkm.sdk4csharp;
namespace OKMRest
{
    public class Program
    {
        static void Main(string[] args)
        {
            String host = "http://localhost:8080/OpenKM";
            String username = "okmAdmin";
            String password = "admin";
            OKMWebservice ws = OKMWebservicesFactory.newInstance(host, username, password);
            
            try
            {
                int qpId = 1; // Some valid search id
                ws.deleteSearch(qpId);
            } 
            catch (Exception e)
            {
                System.Console.WriteLine(e.ToString());
            } 
        }
    }
} 
                   
                  