This module provides database indexing for content fields.
-
Note that types listed are SQL Server data types.
SQLite doesn't have a length limit on text fields.
| Name | Type | Non-Null | Primary Key |
|---|---|---|---|
Id |
int |
true |
true |
DocumentId |
int |
false |
false |
ContentItemId |
nvarchar(26) |
false |
false |
ContentItemVersionId |
nvarchar(26) |
false |
false |
ContentType |
nvarchar(255) |
false |
false |
ContentPart |
nvarchar(255) |
false |
false |
ContentField |
nvarchar(255) |
false |
false |
Published |
bit |
false |
false |
Latest |
bit |
false |
false |
| Boolean | bit | false | false |
| Name | Type | Non-Null | Primary Key |
|---|---|---|---|
Id |
int |
true |
true |
DocumentId |
int |
false |
false |
ContentItemId |
nvarchar(26) |
false |
false |
ContentItemVersionId |
nvarchar(26) |
false |
false |
ContentType |
nvarchar(255) |
false |
false |
ContentPart |
nvarchar(255) |
false |
false |
ContentField |
nvarchar(255) |
false |
false |
Published |
bit |
false |
false |
Latest |
bit |
false |
false |
| SelectedContentItemId | nvarchar(26) | false | false |
| Name | Type | Non-Null | Primary Key |
|---|---|---|---|
Id |
int |
true |
true |
DocumentId |
int |
false |
false |
ContentItemId |
nvarchar(26) |
false |
false |
ContentItemVersionId |
nvarchar(26) |
false |
false |
ContentType |
nvarchar(255) |
false |
false |
ContentPart |
nvarchar(255) |
false |
false |
ContentField |
nvarchar(255) |
false |
false |
Published |
bit |
false |
false |
Latest |
bit |
false |
false |
| Date | datetime | false | false |
| Name | Type | Non-Null | Primary Key |
|---|---|---|---|
Id |
int |
true |
true |
DocumentId |
int |
false |
false |
ContentItemId |
nvarchar(26) |
false |
false |
ContentItemVersionId |
nvarchar(26) |
false |
false |
ContentType |
nvarchar(255) |
false |
false |
ContentPart |
nvarchar(255) |
false |
false |
ContentField |
nvarchar(255) |
false |
false |
Published |
bit |
false |
false |
Latest |
bit |
false |
false |
| DateTime | datetime | false | false |
| Name | Type | Non-Null | Primary Key |
|---|---|---|---|
Id |
int |
true |
true |
DocumentId |
int |
false |
false |
ContentItemId |
nvarchar(26) |
false |
false |
ContentItemVersionId |
nvarchar(26) |
false |
false |
ContentType |
nvarchar(255) |
false |
false |
ContentPart |
nvarchar(255) |
false |
false |
ContentField |
nvarchar(255) |
false |
false |
Published |
bit |
false |
false |
Latest |
bit |
false |
false |
| Html | nvarchar(max) | false | false |
| Name | Type | Non-Null | Primary Key |
|---|---|---|---|
Id |
int |
true |
true |
DocumentId |
int |
false |
false |
ContentItemId |
nvarchar(26) |
false |
false |
ContentItemVersionId |
nvarchar(26) |
false |
false |
ContentType |
nvarchar(255) |
false |
false |
ContentPart |
nvarchar(255) |
false |
false |
ContentField |
nvarchar(255) |
false |
false |
Published |
bit |
false |
false |
Latest |
bit |
false |
false |
| Url | nvarchar(4000) | false | false |
| Text | nvarchar(4000) | false | false |
| Name | Type | Non-Null | Primary Key |
|---|---|---|---|
Id |
int |
true |
true |
DocumentId |
int |
false |
false |
ContentItemId |
nvarchar(26) |
false |
false |
ContentItemVersionId |
nvarchar(26) |
false |
false |
ContentType |
nvarchar(255) |
false |
false |
ContentPart |
nvarchar(255) |
false |
false |
ContentField |
nvarchar(255) |
false |
false |
Published |
bit |
false |
false |
Latest |
bit |
false |
false |
| Numeric | decimal(19,5) | false | false |
| Name | Type | Non-Null | Primary Key |
|---|---|---|---|
Id |
Int |
true |
true |
DocumentId |
int |
false |
false |
ContentItemId |
nvarchar(26) |
false |
false |
ContentItemVersionId |
nvarchar(26) |
false |
false |
ContentType |
nvarchar(255) |
false |
false |
ContentPart |
nvarchar(255) |
false |
false |
ContentField |
nvarchar(255) |
false |
false |
Published |
bit |
false |
false |
Latest |
bit |
false |
false |
| Text | nvarchar(4000) | false | false |
| BigText | nvarchar(max) | false | false |
| Name | Type | Non-Null | Primary Key |
|---|---|---|---|
Id |
Int |
true |
true |
DocumentId |
int |
false |
false |
ContentItemId |
nvarchar(26) |
false |
false |
ContentItemVersionId |
nvarchar(26) |
false |
false |
ContentType |
nvarchar(255) |
false |
false |
ContentPart |
nvarchar(255) |
false |
false |
ContentField |
nvarchar(255) |
false |
false |
Published |
bit |
false |
false |
Latest |
bit |
false |
false |
| Time | datetime | false | false |
Please look at each index tables to see which fields are available to query on. The following examples are for the TextFieldIndex only.
From a class.
using OrchardCore.ContentManagement;
using OrchardCore.ContentFields.Indexing
public class MyClass(){
private readonly ISession _session;
public MyClass(ISession session)
{
_session = session;
}
public async Task<IEnumerable<ContentItem>> GetTextFieldIndexRecords(string contentType, string contentField){
return await _session.Query<ContentItem, TextFieldIndex>(x => x.ContentType == contentType && x.ContentField == contentField).ListAsync();
}
}From a Razor template.
@using OrchardCore.ContentManagement
@using OrchardCore.ContentFields.Indexing
@inject ISession Session
@{
var contentItems = await Session.Query<ContentItem, TextFieldIndex>(x => x.ContentType == "Acme" && x.ContentField == "Test").ListAsync();
}From Liquid you will require to create a SQL Query in Orchard Core to retrieve these records first. Name it "AllCountries" for the current example and don't select the option "Return Documents" on the Query.
SELECT * FROM TextFieldIndex
WHERE ContentType = 'Acme' AND ContentField = 'Country'In our Liquid template we will now retrieve these records.
{% assign allCountries = Queries.AllCountries | query %}
{% for country in allCountries %}
{{ country.Text }}
{% endfor %}Please note that Datetimes are stored as UTC so a conversion with the current request culture will be required.