SQL索引
内容项索引
以下是您可以查询的SQL表及其列。
ContentItemIndex
名称 |
类型 |
非空 |
主键 |
Id |
int |
true |
true |
DocumentId |
int |
false |
false |
ContentItemId |
nvarchar(26) |
false |
false |
Published |
bit |
false |
false |
Latest |
bit |
false |
false |
ModifiedUtc |
datetime |
false |
false |
PublishedUtc |
datetime |
false |
false |
CreatedUtc |
datetime |
false |
false |
Owner |
nvarchar(255) |
false |
false |
Author |
nvarchar(255) |
false |
false |
DisplayText |
nvarchar(255) |
false |
false |
LocalizedContentItemIndex
名称 |
类型 |
非空 |
主键 |
Id |
int |
true |
true |
DocumentId |
int |
false |
false |
ContentItemId |
nvarchar(26) |
false |
false |
Published |
bit |
false |
false |
Latest |
bit |
false |
false |
LocalizationSet |
nvarchar |
false |
false |
Culture |
nvarchar |
false |
false |
内容字段索引
OrchardCore.ContentFields.Indexing.SQL
模块提供了内容字段的数据库索引。
可用的内容字段表
BooleanFieldIndex
名称 |
类型 |
非空 |
主键 |
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 |
ContentPickerFieldIndex
名称 |
类型 |
非空 |
主键 |
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 |
DateFieldIndex
名称 |
类型 |
非空 |
主键 |
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 |
DateTimeFieldIndex
名称 |
类型 |
非空 |
主键 |
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 |
HtmlFieldIndex
名称 |
类型 |
非空 |
主键 |
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 |
LinkFieldIndex
名称 |
类型 |
非空 |
主键 |
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(766) |
false |
false |
BigUrl |
nvarchar(max) |
false |
false |
Text |
nvarchar(766) |
false |
false |
BigText |
nvarchar(max) |
false |
false |
MultiTextFieldIndex
名称 |
类型 |
非空 |
主键 |
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 |
Value |
nvarchar(766) |
false |
false |
BigValue |
nvarchar(max) |
false |
false |
NumericFieldIndex
名称 |
类型 |
非空 |
主键 |
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 |
TextFieldIndex
名称 |
类型 |
非空 |
主键 |
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(766) |
false |
false |
BigText |
nvarchar(max) |
false |
false |
TimeFieldIndex
名称 |
类型 |
非空 |
主键 |
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 |
UserPickerFieldIndex
名称 |
类型 |
非空 |
主键 |
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 |
SelectedUserId |
string |
false |
false |
用法
请查看每个索引表,以查看可以查询哪些字段。以下示例仅适用于 TextFieldIndex。
从类中。
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();
}
}
从 Razor 模板:
@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();
}
从 Liquid,您需要先在 Orchard Core 中创建一个 SQL 查询以检索这些记录。将其命名为“所有国家”以进行当前示例,并且不要选择查询选项“返回文档”:
SELECT * FROM TextFieldIndex
WHERE ContentType = 'Acme' AND ContentField = 'Country'
在我们的 Liquid 模板中,我们现在将检索这些记录。
{% assign allCountries = Queries.AllCountries | query %}
{% for country in allCountries %}
{{ country.Text }}
{% endfor %}
请注意,日期时间存储为 UTC,因此需要使用当前请求区域设置进行转换。
该文档由ChatGPT 4 翻译
Last update:
March 22, 2023