mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2025-10-15 19:54:57 +08:00
Merge
--HG-- branch : dev
This commit is contained in:
@@ -3,17 +3,13 @@ using System.IO;
|
||||
using System.Linq;
|
||||
using Autofac;
|
||||
using NUnit.Framework;
|
||||
using Orchard.Environment;
|
||||
using Orchard.Environment.Configuration;
|
||||
using Orchard.FileSystems.AppData;
|
||||
using Orchard.FileSystems.VirtualPath;
|
||||
using Orchard.Indexing;
|
||||
using Orchard.Core.Indexing.Lucene;
|
||||
using Orchard.Services;
|
||||
using Orchard.Tests.Environment.Configuration;
|
||||
using Orchard.Tests.FileSystems.AppData;
|
||||
|
||||
namespace Orchard.Tests.Indexing {
|
||||
namespace Orchard.Core.Tests.Indexing {
|
||||
public class DefaultSearchBuilderTests {
|
||||
private IContainer _container;
|
||||
private IIndexProvider _provider;
|
||||
@@ -194,5 +190,57 @@ namespace Orchard.Tests.Indexing {
|
||||
Assert.That(cpp.Count(), Is.EqualTo(2));
|
||||
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void ShouldHandleMandatoryFields() {
|
||||
_provider.CreateIndex("default");
|
||||
_provider.Store("default", _provider.New(1).Add("body", "Orchard has been developped in C#"));
|
||||
_provider.Store("default", _provider.New(2).Add("body", "Windows has been developped in C++"));
|
||||
|
||||
Assert.That(_searchBuilder.WithField("body", "develop").Search().ToList().Count(), Is.EqualTo(2));
|
||||
Assert.That(_searchBuilder.WithField("body", "develop").WithField("body", "Orchard").Search().ToList().Count(), Is.EqualTo(2));
|
||||
Assert.That(_searchBuilder.WithField("body", "develop").WithField("body", "Orchard").Mandatory().Search().ToList().Count(), Is.EqualTo(1));
|
||||
Assert.That(_searchBuilder.WithField("body", "develop").WithField("body", "Orchard").Mandatory().Search().First().Id, Is.EqualTo(1));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void ShouldHandleForbiddenFields() {
|
||||
_provider.CreateIndex("default");
|
||||
_provider.Store("default", _provider.New(1).Add("body", "Orchard has been developped in C#"));
|
||||
_provider.Store("default", _provider.New(2).Add("body", "Windows has been developped in C++"));
|
||||
|
||||
Assert.That(_searchBuilder.WithField("body", "develop").Search().ToList().Count(), Is.EqualTo(2));
|
||||
Assert.That(_searchBuilder.WithField("body", "develop").WithField("body", "Orchard").Search().ToList().Count(), Is.EqualTo(2));
|
||||
Assert.That(_searchBuilder.WithField("body", "develop").WithField("body", "Orchard").Forbidden().Search().ToList().Count(), Is.EqualTo(1));
|
||||
Assert.That(_searchBuilder.WithField("body", "develop").WithField("body", "Orchard").Forbidden().Search().First().Id, Is.EqualTo(2));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void ShouldHandleWeight() {
|
||||
_provider.CreateIndex("default");
|
||||
_provider.Store("default", _provider.New(1).Add("body", "Orchard has been developped in C#"));
|
||||
_provider.Store("default", _provider.New(2).Add("body", "Windows has been developped in C++"));
|
||||
|
||||
Assert.That(_searchBuilder.WithField("body", "develop").WithField("body", "Orchard").Weighted(2).Search().First().Id, Is.EqualTo(1));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void ShouldParseLuceneQueries() {
|
||||
_provider.CreateIndex("default");
|
||||
_provider.Store("default", _provider.New(1).Add("body", "Bradley is in the kitchen.").Add("title", "Beer and takos"));
|
||||
_provider.Store("default", _provider.New(2).Add("body", "Renaud is also in the kitchen.").Add("title", "A love affair"));
|
||||
_provider.Store("default", _provider.New(3).Add("body", "Bertrand is a little bit jealous.").Add("title", "Soap opera"));
|
||||
|
||||
Assert.That(_searchBuilder.Parse(new[] { "body" }, "kitchen").Count(), Is.EqualTo(2));
|
||||
Assert.That(_searchBuilder.Parse(new[] { "body" }, "kitchen bertrand").Count(), Is.EqualTo(3));
|
||||
Assert.That(_searchBuilder.Parse(new[] { "body" }, "kitchen +bertrand").Count(), Is.EqualTo(1));
|
||||
Assert.That(_searchBuilder.Parse(new[] { "body" }, "+kitchen +bertrand").Count(), Is.EqualTo(0));
|
||||
Assert.That(_searchBuilder.Parse(new[] { "body" }, "kit").Count(), Is.EqualTo(0));
|
||||
Assert.That(_searchBuilder.Parse(new[] { "body" }, "kit*").Count(), Is.EqualTo(2));
|
||||
Assert.That(_searchBuilder.Parse(new[] { "body", "title" }, "bradley love^3 soap").Count(), Is.EqualTo(3));
|
||||
Assert.That(_searchBuilder.Parse(new[] { "body", "title" }, "bradley love^3 soap").Search().First().Id, Is.EqualTo(2));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
@@ -4,7 +4,7 @@ author: The Orchard Team
|
||||
website: http://orchardproject.net
|
||||
version: 0.1
|
||||
orchardversion: 0.1.2010.0312
|
||||
description: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas consectetur consequat risus, vel blandit arcu tincidunt eget. Nam rutrum nulla vestibulum dolor dapibus sagittis. Vivamus convallis faucibus accumsan. Suspendisse sapien enim, cursus at dignissim a, sollicitudin sit amet est. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Donec sed urna magna, in luctus nulla. Pellentesque erat ipsum, convallis sed molestie tempus, mattis vel leo metus.
|
||||
description: The common module introduces content parts that are going to be used by most content types (common, body and routable).
|
||||
features:
|
||||
Common:
|
||||
Description: Core content parts.
|
||||
|
@@ -4,7 +4,7 @@ author: The Orchard Team
|
||||
website: http://orchardproject.net
|
||||
version: 0.1
|
||||
orchardversion: 0.1.2010.0312
|
||||
description: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas consectetur consequat risus, vel blandit arcu tincidunt eget. Nam rutrum nulla vestibulum dolor dapibus sagittis. Vivamus convallis faucibus accumsan. Suspendisse sapien enim, cursus at dignissim a, sollicitudin sit amet est. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Donec sed urna magna, in luctus nulla. Pellentesque erat ipsum, convallis sed molestie tempus, mattis vel leo metus.
|
||||
description: The contents module enables the creation of custom content types.
|
||||
features:
|
||||
Contents:
|
||||
Description: Default custom content type definition, creation and management.
|
||||
|
@@ -4,7 +4,7 @@ author: The Orchard Team
|
||||
website: http://orchardproject.net
|
||||
version: 0.1
|
||||
orchardversion: 0.1.2010.0312
|
||||
description: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent ut arcu turpis, et placerat nunc. Nunc sollicitudin iaculis est, in ultricies mi facilisis et. Aenean et tortor non metus adipiscing laoreet in a justo. Pellentesque faucibus nisl ac lectus mollis quis pellentesque tortor egestas. Curabitur vel velit semper nunc gravida scelerisque. Vivamus at tellus dolor, in ultrices quam posuere.
|
||||
description: The dashboard module is providing the dashboard screen of the admininstration UI of the application.
|
||||
features:
|
||||
Dashboard:
|
||||
Description: Standard admin dashboard.
|
||||
|
@@ -4,7 +4,7 @@ author: The Orchard Team
|
||||
website: http://orchardproject.net
|
||||
version: 0.1
|
||||
orchardversion: 0.1.2010.0312
|
||||
description: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent ut arcu turpis, et placerat nunc. Nunc sollicitudin iaculis est, in ultricies mi facilisis et. Aenean et tortor non metus adipiscing laoreet in a justo. Pellentesque faucibus nisl ac lectus mollis quis pellentesque tortor egestas. Curabitur vel velit semper nunc gravida scelerisque. Vivamus at tellus dolor, in ultrices quam posuere.
|
||||
description: The Feeds module is providing RSS feeds to content items.
|
||||
features:
|
||||
Feeds:
|
||||
Description: RSS feeds for content items.
|
||||
|
@@ -4,7 +4,7 @@ author: The Orchard Team
|
||||
website: http://orchardproject.net
|
||||
version: 0.1
|
||||
orchardversion: 0.1.2010.0312
|
||||
description: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent ut arcu turpis, et placerat nunc. Nunc sollicitudin iaculis est, in ultricies mi facilisis et. Aenean et tortor non metus adipiscing laoreet in a justo. Pellentesque faucibus nisl ac lectus mollis quis pellentesque tortor egestas. Curabitur vel velit semper nunc gravida scelerisque. Vivamus at tellus dolor, in ultrices quam posuere.
|
||||
description: The HomePage module enables the promotion of a content item or container to be the home page of the site.
|
||||
features:
|
||||
HomePage:
|
||||
Description: Standard site home page that allows a specified content type or container to *be* the home page.
|
||||
|
@@ -19,7 +19,7 @@ namespace Orchard.Core.Indexing.Lucene {
|
||||
|
||||
private readonly Directory _directory;
|
||||
|
||||
private readonly Dictionary<string, Query[]> _fields;
|
||||
private readonly Dictionary<string, BooleanClause[]> _fields;
|
||||
private int _count;
|
||||
private int _skip;
|
||||
private readonly Dictionary<string, DateTime> _before;
|
||||
@@ -28,7 +28,15 @@ namespace Orchard.Core.Indexing.Lucene {
|
||||
private bool _sortDescending;
|
||||
private string _parse;
|
||||
private readonly Analyzer _analyzer;
|
||||
private string _defaultField;
|
||||
private string[] _defaultFields;
|
||||
|
||||
// pending clause attributes
|
||||
private string _field;
|
||||
private string _terms;
|
||||
private BooleanClause.Occur _occur;
|
||||
private bool _prefix;
|
||||
private bool _stem;
|
||||
private float _boost;
|
||||
|
||||
public ILogger Logger { get; set; }
|
||||
|
||||
@@ -40,15 +48,17 @@ namespace Orchard.Core.Indexing.Lucene {
|
||||
_skip = 0;
|
||||
_before = new Dictionary<string, DateTime>();
|
||||
_after = new Dictionary<string, DateTime>();
|
||||
_fields = new Dictionary<string, Query[]>();
|
||||
_fields = new Dictionary<string, BooleanClause[]>();
|
||||
_sort = String.Empty;
|
||||
_sortDescending = true;
|
||||
_parse = String.Empty;
|
||||
_analyzer = DefaultIndexProvider.CreateAnalyzer();
|
||||
|
||||
InitPendingClause();
|
||||
}
|
||||
|
||||
public ISearchBuilder Parse(string defaultField, string query) {
|
||||
if ( String.IsNullOrWhiteSpace(defaultField) ) {
|
||||
public ISearchBuilder Parse(string[] defaultFields, string query) {
|
||||
if ( defaultFields.Length == 0 ) {
|
||||
throw new ArgumentException("Default field can't be empty");
|
||||
}
|
||||
|
||||
@@ -56,32 +66,84 @@ namespace Orchard.Core.Indexing.Lucene {
|
||||
throw new ArgumentException("Query can't be empty");
|
||||
}
|
||||
|
||||
_defaultField = defaultField;
|
||||
_defaultFields = defaultFields;
|
||||
_parse = query;
|
||||
return this;
|
||||
}
|
||||
|
||||
public ISearchBuilder WithField(string field, string value) {
|
||||
return WithField(field, value, true);
|
||||
CreatePendingClause();
|
||||
|
||||
_field = field;
|
||||
_terms = value;
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
public ISearchBuilder WithField(string field, string value, bool wildcardSearch) {
|
||||
public ISearchBuilder Mandatory() {
|
||||
_occur = BooleanClause.Occur.MUST;
|
||||
return this;
|
||||
}
|
||||
|
||||
public ISearchBuilder Forbidden() {
|
||||
_occur = BooleanClause.Occur.MUST_NOT;
|
||||
return this;
|
||||
}
|
||||
|
||||
public ISearchBuilder ExactMatch() {
|
||||
_prefix = false;
|
||||
_stem = false;
|
||||
return this;
|
||||
}
|
||||
|
||||
public ISearchBuilder Weighted(float weight) {
|
||||
_boost = weight;
|
||||
return this;
|
||||
}
|
||||
|
||||
private void InitPendingClause() {
|
||||
_field = String.Empty;
|
||||
_terms = String.Empty;
|
||||
_occur = BooleanClause.Occur.SHOULD;
|
||||
_prefix = true;
|
||||
_stem = true;
|
||||
_boost = 0;
|
||||
}
|
||||
|
||||
private void CreatePendingClause() {
|
||||
if(String.IsNullOrWhiteSpace(_field) || String.IsNullOrWhiteSpace(_terms)) {
|
||||
return;
|
||||
}
|
||||
|
||||
var tokens = new List<string>();
|
||||
using(var sr = new System.IO.StringReader(value)) {
|
||||
var stream = _analyzer.TokenStream(field, sr);
|
||||
while(stream.IncrementToken()) {
|
||||
tokens.Add(((TermAttribute)stream.GetAttribute(typeof(TermAttribute))).Term());
|
||||
using ( var sr = new System.IO.StringReader(_terms) ) {
|
||||
var stream = _analyzer.TokenStream(_field, sr);
|
||||
|
||||
if(_stem) {
|
||||
stream = new PorterStemFilter(stream);
|
||||
}
|
||||
|
||||
while ( stream.IncrementToken() ) {
|
||||
tokens.Add(( (TermAttribute)stream.GetAttribute(typeof(TermAttribute)) ).Term());
|
||||
}
|
||||
}
|
||||
|
||||
_fields[field] = tokens
|
||||
.Where(k => !String.IsNullOrWhiteSpace(k))
|
||||
.Select(QueryParser.Escape)
|
||||
.Select(k => wildcardSearch ? (Query)new PrefixQuery(new Term(field, k)) : new TermQuery(new Term(k)))
|
||||
.ToArray();
|
||||
|
||||
return this;
|
||||
var clauses = tokens
|
||||
.Where(k => !String.IsNullOrWhiteSpace(k)) // remove empty strings
|
||||
.Select(QueryParser.Escape) // escape special chars (e.g. C#)
|
||||
.Select(k => new Term(_field, k)) // creates the Term instance
|
||||
.Select(t => _prefix ? new PrefixQuery(t) as Query : new TermQuery(t) as Query) // apply the corresponding Query
|
||||
.Select(q => {
|
||||
if (_boost != 0) q.SetBoost(_boost);
|
||||
return q;
|
||||
})
|
||||
.Select(q => new BooleanClause(q, _occur)); // apply the corresponding clause
|
||||
|
||||
if ( !_fields.ContainsKey(_field) ) {
|
||||
_fields[_field] = new BooleanClause[0];
|
||||
}
|
||||
|
||||
_fields[_field] = _fields[_field].Union(clauses).ToArray();
|
||||
}
|
||||
|
||||
public ISearchBuilder After(string name, DateTime date) {
|
||||
@@ -120,16 +182,23 @@ namespace Orchard.Core.Indexing.Lucene {
|
||||
}
|
||||
|
||||
private Query CreateQuery() {
|
||||
if(!String.IsNullOrWhiteSpace(_parse)) {
|
||||
return new QueryParser(DefaultIndexProvider.LuceneVersion, _defaultField, DefaultIndexProvider.CreateAnalyzer()).Parse(_parse);
|
||||
}
|
||||
CreatePendingClause();
|
||||
|
||||
var query = new BooleanQuery();
|
||||
|
||||
if(!String.IsNullOrWhiteSpace(_parse)) {
|
||||
|
||||
foreach ( var defaultField in _defaultFields ) {
|
||||
var clause = new BooleanClause(new QueryParser(DefaultIndexProvider.LuceneVersion, defaultField, DefaultIndexProvider.CreateAnalyzer()).Parse(_parse), BooleanClause.Occur.SHOULD);
|
||||
query.Add(clause);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if ( _fields.Keys.Count > 0 ) { // apply specific filters if defined
|
||||
foreach ( var filters in _fields.Values ) {
|
||||
foreach(var filter in filters)
|
||||
query.Add(filter, BooleanClause.Occur.SHOULD);
|
||||
foreach ( var clauses in _fields.Values ) {
|
||||
foreach( var clause in clauses)
|
||||
query.Add(clause);
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -4,6 +4,7 @@ author: The Orchard Team
|
||||
website: http://orchardproject.net
|
||||
version: 0.1
|
||||
orchardversion: 0.1.2010.0312
|
||||
description: The Indexing module enables the site to be indexed. The index generated by this module can then be used by the search module to provide an integrated full-text search experience to a web site.
|
||||
features:
|
||||
Indexing:
|
||||
Description: Indexing services based on Lucene.
|
||||
|
@@ -4,7 +4,7 @@ author: The Orchard Team
|
||||
website: http://orchardproject.net
|
||||
version: 0.1
|
||||
orchardversion: 0.1.2010.0312
|
||||
description: Support for localizing content items for cultures.
|
||||
description: The localization module enables the localization of content items.
|
||||
features:
|
||||
Localization:
|
||||
Description: Localize content items.
|
||||
|
@@ -4,7 +4,7 @@ author: The Orchard Team
|
||||
website: http://orchardproject.net
|
||||
version: 0.1
|
||||
orchardversion: 0.1.2010.0312
|
||||
description: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent ut arcu turpis, et placerat nunc. Nunc sollicitudin iaculis est, in ultricies mi facilisis et. Aenean et tortor non metus adipiscing laoreet in a justo. Pellentesque faucibus nisl ac lectus mollis quis pellentesque tortor egestas. Curabitur vel velit semper nunc gravida scelerisque. Vivamus at tellus dolor, in ultrices quam posuere.
|
||||
description: The navigation module creates and manages a simple navigation menu for the front-end of the application.
|
||||
features:
|
||||
Navigation:
|
||||
Description: Menu management.
|
||||
|
@@ -4,7 +4,7 @@ author: The Orchard Team
|
||||
website: http://orchardproject.net
|
||||
version: 0.1
|
||||
orchardversion: 0.1.2010.0312
|
||||
description: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas consectetur consequat risus, vel blandit arcu tincidunt eget. Nam rutrum nulla vestibulum dolor dapibus sagittis. Vivamus convallis faucibus accumsan. Suspendisse sapien enim, cursus at dignissim a, sollicitudin sit amet est. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Donec sed urna magna, in luctus nulla. Pellentesque erat ipsum, convallis sed molestie tempus, mattis vel leo metus.
|
||||
description: The routable module enables content items to be accessed through a friendly human-readable URL.
|
||||
features:
|
||||
Routable:
|
||||
Description: Routable content part.
|
||||
|
@@ -4,7 +4,7 @@ author: The Orchard Team
|
||||
website: http://orchardproject.net
|
||||
version: 0.1
|
||||
orchardversion: 0.1.2010.0312
|
||||
description: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas consectetur consequat risus, vel blandit arcu tincidunt eget. Nam rutrum nulla vestibulum dolor dapibus sagittis. Vivamus convallis faucibus accumsan. Suspendisse sapien enim, cursus at dignissim a, sollicitudin sit amet est. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Donec sed urna magna, in luctus nulla. Pellentesque erat ipsum, convallis sed molestie tempus, mattis vel leo metus.
|
||||
description: The scheduling module enables background task scheduling.
|
||||
features:
|
||||
Scheduling:
|
||||
Description: Scheduled background tasks.
|
||||
|
@@ -4,7 +4,7 @@ author: The Orchard Team
|
||||
website: http://orchardproject.net
|
||||
version: 0.1
|
||||
orchardversion: 0.1.2010.0312
|
||||
description: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent ut arcu turpis, et placerat nunc. Nunc sollicitudin iaculis est, in ultricies mi facilisis et. Aenean et tortor non metus adipiscing laoreet in a justo. Pellentesque faucibus nisl ac lectus mollis quis pellentesque tortor egestas. Curabitur vel velit semper nunc gravida scelerisque. Vivamus at tellus dolor, in ultrices quam posuere.
|
||||
description: The settings module creates site settings that other modules can contribute to.
|
||||
features:
|
||||
Settings:
|
||||
Description: Site settings.
|
||||
|
@@ -4,7 +4,7 @@ author: The Orchard Team
|
||||
website: http://orchardproject.net
|
||||
version: 0.1
|
||||
orchardversion: 0.1.2010.0312
|
||||
description: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent ut arcu turpis, et placerat nunc. Nunc sollicitudin iaculis est, in ultricies mi facilisis et. Aenean et tortor non metus adipiscing laoreet in a justo. Pellentesque faucibus nisl ac lectus mollis quis pellentesque tortor egestas. Curabitur vel velit semper nunc gravida scelerisque. Vivamus at tellus dolor, in ultrices quam posuere.
|
||||
description: The XmlRpc module enables creation of contents from client applications such as LiveWriter.
|
||||
features:
|
||||
XmlRpc:
|
||||
Description: XML-RPC opt-in implementation.
|
||||
|
@@ -4,7 +4,7 @@ author: The Orchard Team
|
||||
website: http://orchardproject.net
|
||||
version: 0.1
|
||||
orchardversion: 0.1.2010.0312
|
||||
description: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas consectetur consequat risus, vel blandit arcu tincidunt eget. Nam rutrum nulla vestibulum dolor dapibus sagittis. Vivamus convallis faucibus accumsan. Suspendisse sapien enim, cursus at dignissim a, sollicitudin sit amet est. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Donec sed urna magna, in luctus nulla. Pellentesque erat ipsum, convallis sed molestie tempus, mattis vel leo metus.
|
||||
description: A prototype implementation of Orchard widgets that only allows for editable global text regions.
|
||||
features:
|
||||
Futures.Widgets:
|
||||
Description: Widgets container with simple inline content editing widget.
|
||||
|
@@ -4,7 +4,7 @@ author: The Orchard Team
|
||||
website: http://orchardproject.net
|
||||
version: 0.1
|
||||
orchardversion: 0.1.2010.0312
|
||||
description: The Orchard Blogs module is a package containing a couple of features. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas consectetur consequat risus, vel blandit arcu tincidunt eget. Nam rutrum nulla vestibulum dolor dapibus sagittis. Vivamus convallis faucibus accumsan. Suspendisse sapien enim, cursus at dignissim a, sollicitudin sit amet est. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Donec sed urna magna, in luctus nulla. Pellentesque erat ipsum, convallis sed molestie tempus, mattis vel leo metus.
|
||||
description: The Orchard Blogs module is implementing basic blogging features.
|
||||
features:
|
||||
Orchard.Blogs:
|
||||
Description: A simple web log.
|
||||
|
@@ -4,7 +4,7 @@ author: The Orchard Team
|
||||
website: http://orchardproject.net
|
||||
version: 0.1
|
||||
orchardversion: 0.1.2010.0312
|
||||
description: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent ut arcu turpis, et placerat nunc. Nunc sollicitudin iaculis est, in ultricies mi facilisis et. Aenean et tortor non metus adipiscing laoreet in a justo. Pellentesque faucibus nisl ac lectus mollis quis pellentesque tortor egestas. Curabitur vel velit semper nunc gravida scelerisque. Vivamus at tellus dolor, in ultrices quam posuere.
|
||||
description: The comments system implemented by this module can be applied to arbitrary Orchard content types, such as blogs and pages. It includes comment validation and spam protection through the Akismet service.
|
||||
features:
|
||||
Orchard.Comments:
|
||||
Description: Standard content item comments.
|
||||
|
@@ -4,7 +4,7 @@ author: The Orchard Team
|
||||
website: http://orchardproject.net
|
||||
version: 0.1
|
||||
orchardversion: 0.1.2010.0312
|
||||
description: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent ut arcu turpis, et placerat nunc. Nunc sollicitudin iaculis est, in ultricies mi facilisis et. Aenean et tortor non metus adipiscing laoreet in a justo. Pellentesque faucibus nisl ac lectus mollis quis pellentesque tortor egestas. Curabitur vel velit semper nunc gravida scelerisque. Vivamus at tellus dolor, in ultrices quam posuere.
|
||||
description: This module is not activated by default and should only be used in a development environment. It contains various debugging and tracing tools that can display information about your content types.
|
||||
features:
|
||||
Orchard.DevTools:
|
||||
Description: An assortment of debuging tools.
|
||||
|
@@ -4,7 +4,7 @@ author: The Orchard Team
|
||||
website: http://orchardproject.net
|
||||
version: 0.1
|
||||
orchardversion: 0.1.2010.0312
|
||||
description: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent ut arcu turpis, et placerat nunc. Nunc sollicitudin iaculis est, in ultricies mi facilisis et. Aenean et tortor non metus adipiscing laoreet in a justo. Pellentesque faucibus nisl ac lectus mollis quis pellentesque tortor egestas. Curabitur vel velit semper nunc gravida scelerisque. Vivamus at tellus dolor, in ultrices quam posuere.
|
||||
description: The media module offer basic media management features. It currently only supports image files. Storage goes into the current Orchard file system, which can be the server's physical file system or Azure blob storage.
|
||||
features:
|
||||
Orchard.Media:
|
||||
Description: File system based media upload, storage and management.
|
||||
|
@@ -1,5 +1,6 @@
|
||||
name: MetaData
|
||||
antiforgery: enabled
|
||||
description: The MetaData module enables the management of the content type meta data, which describes how content types are built from parts and parts from fields.
|
||||
features:
|
||||
Orchard.MetaData:
|
||||
Description: Module for managing Orchard MetaData
|
||||
|
@@ -4,7 +4,7 @@ author: The Orchard Team
|
||||
website: http://orchardproject.net
|
||||
version: 0.1
|
||||
orchardversion: 0.1.2010.0312
|
||||
description: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent ut arcu turpis, et placerat nunc. Nunc sollicitudin iaculis est, in ultricies mi facilisis et. Aenean et tortor non metus adipiscing laoreet in a justo. Pellentesque faucibus nisl ac lectus mollis quis pellentesque tortor egestas. Curabitur vel velit semper nunc gravida scelerisque. Vivamus at tellus dolor, in ultrices quam posuere.
|
||||
description: The Modules module enables the administrator of the site to manage the installed modules as well as activate and de-activate features.
|
||||
features:
|
||||
Orchard.Modules:
|
||||
Description: Standard module and feature management.
|
||||
|
@@ -4,7 +4,7 @@ author: The Orchard Team
|
||||
website: http://orchardproject.net
|
||||
version: 0.1
|
||||
orchardversion: 0.1.2010.0312
|
||||
description: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas consectetur consequat risus, vel blandit arcu tincidunt eget. Nam rutrum nulla vestibulum dolor dapibus sagittis. Vivamus convallis faucibus accumsan. Suspendisse sapien enim, cursus at dignissim a, sollicitudin sit amet est. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Donec sed urna magna, in luctus nulla. Pellentesque erat ipsum, convallis sed molestie tempus, mattis vel leo metus.
|
||||
description: The multi-tenancy module enables multiple Orchard sites to run in isolation inside of a single web application, improving site density on a single server or hosted account.
|
||||
features:
|
||||
Orchard.MultiTenancy:
|
||||
Description: Configure multiple site tenants.
|
||||
|
@@ -4,7 +4,7 @@ author: The Orchard Team
|
||||
website: http://orchardproject.net
|
||||
version: 0.1
|
||||
orchardversion: 0.1.2010.0312
|
||||
description: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent ut arcu turpis, et placerat nunc. Nunc sollicitudin iaculis est, in ultricies mi facilisis et. Aenean et tortor non metus adipiscing laoreet in a justo. Pellentesque faucibus nisl ac lectus mollis quis pellentesque tortor egestas. Curabitur vel velit semper nunc gravida scelerisque. Vivamus at tellus dolor, in ultrices quam posuere.
|
||||
description: The pages module enables the creation and management of pages on and Orchard web site.
|
||||
features:
|
||||
Orchard.Pages:
|
||||
Description: Simple pages.
|
||||
|
@@ -4,7 +4,7 @@ author: The Orchard Team
|
||||
website: http://orchardproject.net
|
||||
version: 0.1
|
||||
orchardversion: 0.1.2010.0312
|
||||
description: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent ut arcu turpis, et placerat nunc. Nunc sollicitudin iaculis est, in ultricies mi facilisis et. Aenean et tortor non metus adipiscing laoreet in a justo. Pellentesque faucibus nisl ac lectus mollis quis pellentesque tortor egestas. Curabitur vel velit semper nunc gravida scelerisque. Vivamus at tellus dolor, in ultrices quam posuere.
|
||||
description: The roles module is adding the ability to assign roles to users. It's also providing a set of default roles for which other modules can define default permissions.
|
||||
features:
|
||||
Orchard.Roles:
|
||||
Description: Standard user roles.
|
||||
|
@@ -4,7 +4,7 @@ author: The Orchard Team
|
||||
website: http://orchardproject.net
|
||||
version: 0.1
|
||||
orchardversion: 0.1.2010.0312
|
||||
description: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent ut arcu turpis, et placerat nunc. Nunc sollicitudin iaculis est, in ultricies mi facilisis et. Aenean et tortor non metus adipiscing laoreet in a justo. Pellentesque faucibus nisl ac lectus mollis quis pellentesque tortor egestas. Curabitur vel velit semper nunc gravida scelerisque. Vivamus at tellus dolor, in ultrices quam posuere.
|
||||
description: The sandbox module is a testing ground for Orchard developers and should not be activated except for testing and development purposes.
|
||||
features:
|
||||
Orchard.Sandbox:
|
||||
Description: A module to mess around with. Currently wiki-like.
|
||||
|
@@ -4,7 +4,7 @@ author: The Orchard Team
|
||||
website: http://orchardproject.net
|
||||
version: 0.1
|
||||
orchardversion: 0.1.2010.0312
|
||||
description: Orchard's built-in search module.
|
||||
description: The search module enables the management of the search index and provides the front-end searching user interface.
|
||||
features:
|
||||
Orchard.Search:
|
||||
Description: Standard interface to Orchard's built-in search.
|
||||
|
@@ -37,11 +37,10 @@ namespace Orchard.Search.Services
|
||||
return null;
|
||||
|
||||
var searchBuilder = _indexManager.GetSearchIndexProvider().CreateSearchBuilder(SearchIndexName)
|
||||
.WithField("title", query)
|
||||
.WithField("body", query);
|
||||
.Parse(new [] {"title", "body"}, query);
|
||||
|
||||
if(HttpContext.Current != null) {
|
||||
searchBuilder.WithField("culture", _cultureManager.GetCurrentCulture(HttpContext.Current));
|
||||
searchBuilder.WithField("culture", _cultureManager.GetCurrentCulture(HttpContext.Current)).Mandatory();
|
||||
}
|
||||
|
||||
var totalCount = searchBuilder.Count();
|
||||
|
@@ -4,8 +4,8 @@ author: The Orchard Team
|
||||
website: http://orchardproject.net
|
||||
version: 0.1
|
||||
orchardversion: 0.1.2010.0312
|
||||
description: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent ut arcu turpis, et placerat nunc. Nunc sollicitudin iaculis est, in ultricies mi facilisis et. Aenean et tortor non metus adipiscing laoreet in a justo. Pellentesque faucibus nisl ac lectus mollis quis pellentesque tortor egestas. Curabitur vel velit semper nunc gravida scelerisque. Vivamus at tellus dolor, in ultrices quam posuere.
|
||||
description: The setup module is creating the application's setup experience.
|
||||
features:
|
||||
Orchard.Setup:
|
||||
Description: Standard site setup.
|
||||
Description: Standard site setup. This feature is disabled automatically once setup is over.
|
||||
Category: Core
|
@@ -4,7 +4,7 @@ author: The Orchard Team
|
||||
website: http://orchardproject.net
|
||||
version: 0.1
|
||||
orchardversion: 0.1.2010.0312
|
||||
description: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas consectetur consequat risus, vel blandit arcu tincidunt eget. Nam rutrum nulla vestibulum dolor dapibus sagittis. Vivamus convallis faucibus accumsan. Suspendisse sapien enim, cursus at dignissim a, sollicitudin sit amet est. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Donec sed urna magna, in luctus nulla. Pellentesque erat ipsum, convallis sed molestie tempus, mattis vel leo metus.
|
||||
description: The tags module is providing basic tagging for arbitrary content types.
|
||||
features:
|
||||
Orchard.Tags:
|
||||
Description: Tag a content item.
|
||||
|
@@ -4,7 +4,7 @@ author: The Orchard Team
|
||||
website: http://orchardproject.net
|
||||
version: 0.1
|
||||
orchardversion: 0.1.2010.0312
|
||||
description: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent ut arcu turpis, et placerat nunc. Nunc sollicitudin iaculis est, in ultricies mi facilisis et. Aenean et tortor non metus adipiscing laoreet in a justo. Pellentesque faucibus nisl ac lectus mollis quis pellentesque tortor egestas. Curabitur vel velit semper nunc gravida scelerisque. Vivamus at tellus dolor, in ultrices quam posuere.
|
||||
description: The themes module makes it possible for Orchard applications to customize the look and feel of an Orchard web site.
|
||||
features:
|
||||
Orchard.Themes:
|
||||
Description: Basic theming capability.
|
||||
|
@@ -4,7 +4,7 @@ author: The Orchard Team
|
||||
website: http://orchardproject.net
|
||||
version: 0.1
|
||||
orchardversion: 0.1.2010.0312
|
||||
description: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent ut arcu turpis, et placerat nunc. Nunc sollicitudin iaculis est, in ultricies mi facilisis et. Aenean et tortor non metus adipiscing laoreet in a justo. Pellentesque faucibus nisl ac lectus mollis quis pellentesque tortor egestas. Curabitur vel velit semper nunc gravida scelerisque. Vivamus at tellus dolor, in ultrices quam posuere.
|
||||
description: The users module enables user management.
|
||||
features:
|
||||
Orchard.Users:
|
||||
Description: Standard users.
|
||||
|
@@ -4,7 +4,7 @@ author: The Orchard Team
|
||||
website: http://orchardproject.net
|
||||
version: 0.1
|
||||
orchardversion: 0.1.2010.0312
|
||||
description: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas consectetur consequat risus, vel blandit arcu tincidunt eget. Nam rutrum nulla vestibulum dolor dapibus sagittis. Vivamus convallis faucibus accumsan. Suspendisse sapien enim, cursus at dignissim a, sollicitudin sit amet est. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Donec sed urna magna, in luctus nulla. Pellentesque erat ipsum, convallis sed molestie tempus, mattis vel leo metus.
|
||||
description: The TinyMCE module enables rich text contents to be created using a "What You See Is What You Get" user interface.
|
||||
features:
|
||||
TinyMce:
|
||||
Description: TinyMCE HTML WYSIWYG editor.
|
||||
|
@@ -3,11 +3,13 @@ using System.Collections.Generic;
|
||||
|
||||
namespace Orchard.Indexing {
|
||||
public interface ISearchBuilder {
|
||||
|
||||
ISearchBuilder Parse(string defaultField, string query);
|
||||
ISearchBuilder Parse(string[] defaultFields, string query);
|
||||
|
||||
ISearchBuilder WithField(string field, string value);
|
||||
ISearchBuilder WithField(string field, string value, bool wildcardSearch);
|
||||
ISearchBuilder Mandatory();
|
||||
ISearchBuilder Forbidden();
|
||||
ISearchBuilder ExactMatch();
|
||||
ISearchBuilder Weighted(float weight);
|
||||
|
||||
ISearchBuilder After(string name, DateTime date);
|
||||
ISearchBuilder Before(string name, DateTime date);
|
||||
|
Reference in New Issue
Block a user