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());
            } 
        }
    }
}
findByQuery
Description:
| Method | Return values | Description | 
|---|---|---|
| 
 findByQuery(String query)  | 
 List<QueryResult>  | 
 Returns a list of results filtered by the query parameter.  | 
| 
 The syntax to use in the statement parameter is the pair 'field:value'. For example: 
 More information about lucene sintaxis at Lucene query syntax.  | 
||
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<QueryResult> rs= ws.findByQuery("keyword:test AND name:t*.pdf"); 
                 foreach (QueryResult qr in rs.results)
                 {
                      System.Console.WriteLine(qr);
                 }
            } 
            catch (Exception e)
            {
                System.Console.WriteLine(e.ToString());
            } 
        }
    }
}
findByQueryPaginated
Description:
| Method | Return values | Description | 
|---|---|---|
| 
 findByQueryPaginated(String query, int offset, int limit)  | 
 ResultSet  | 
 Returns a list of paginated results filtered by the values of the query parameter.  | 
| 
 The syntax to use in the statement parameter is the pair 'field:value'. For example: 
 More information about lucene sintaxis at Lucene query syntax. The parameter "limit" and "offset" allows 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.findByQueryPaginated("name:grial", 0, 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());
            } 
        }
    }
}