Was.OrcSearch

Subversion Repositories:
Compare Path: Rev
With Path: Rev
?path1? @ 1  →  ?path2? @ 2
/Was.OrcSearch/Helpers/Extensions.cs
@@ -0,0 +1,40 @@
using System;
using System.Collections;
using System.Collections.Generic;
 
namespace Was.OrcSearch.Helpers
{
public static class Extensions
{
/// <summary>
/// Convert an object to an enumeration of strings.
/// </summary>
/// <param name="instance">the object to convert</param>
/// <returns>a series of strings</returns>
public static IEnumerable<string> Stringify(this object instance)
{
if (instance == null)
yield break;
 
// Base type will be string.
if (instance is string)
{
yield return (string) instance;
yield break;
}
// Support primitive types.
if (instance.GetType().IsPrimitive)
{
yield return instance.ToString();
yield break;
}
 
// Support for arrays.
if (instance is Array || instance is IList)
foreach (var element in instance as IList)
foreach (var item in Stringify(element))
yield return item;
}
}
}
/Was.OrcSearch/Services/SearchServiceBase.cs
@@ -9,6 +9,7 @@
using Lucene.Net.Store;
using Was.OrcSearch.EventArgs;
using Was.OrcSearch.Extensions;
using Was.OrcSearch.Helpers;
using Was.OrcSearch.Metadata.Interfaces;
using Was.OrcSearch.Services.Interfaces;
 
@@ -117,10 +118,10 @@
foreach (var searchableMetadata in searchableMetadatas)
{
var searchableMetadataValue = searchableMetadata.GetValue(searchable.Instance);
// TODO implement object to string helper.
// Original: ObjectToStringHelper.ToString(searchableMetadataValue);
// TODO Support more serializable types.
var searchableMetadataValueAsString =
searchableMetadataValue
.ToString(); //ObjectToStringHelper.ToString(searchableMetadataValue);
string.Join(" ", searchableMetadataValue.Stringify());
 
var field = new Field(searchableMetadata.SearchName, searchableMetadataValueAsString,
Field.Store.YES,
/Was.OrcSearch/Was.OrcSearch.csproj
@@ -38,8 +38,8 @@
<Reference Include="ICSharpCode.SharpZipLib, Version=0.86.0.518, Culture=neutral, PublicKeyToken=1b03e6acf1164f73, processorArchitecture=MSIL">
<HintPath>..\packages\SharpZipLib.0.86.0\lib\20\ICSharpCode.SharpZipLib.dll</HintPath>
</Reference>
<Reference Include="Lucene.Net, Version=3.0.3.0, Culture=neutral, PublicKeyToken=85089178b9ac3181, processorArchitecture=MSIL">
<HintPath>..\packages\Lucene.Net.3.0.3\lib\NET40\Lucene.Net.dll</HintPath>
<Reference Include="Lucene.Net, Version=3.0.3.0, Culture=neutral, PublicKeyToken=85089178b9ac3181">
<HintPath>..\..\Corrade\packages\Lucene.Net.3.0.3\lib\NET40\Lucene.Net.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
@@ -50,6 +50,7 @@
<Compile Include="EventArgs\SearchEventArgs.cs" />
<Compile Include="Extensions\StringExtensions.cs" />
<Compile Include="Helpers\PathHelper.cs" />
<Compile Include="Helpers\Extensions.cs" />
<Compile Include="Metadata\AttributeMetadataCollection.cs" />
<Compile Include="Metadata\Interfaces\IMetadataProvider.cs" />
<Compile Include="Metadata\Interfaces\ISearchable.cs" />
/Was.OrcSearch/packages.config
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
 
<packages>
<package id="Lucene.Net" version="3.0.3" targetFramework="net452" />
<package id="SharpZipLib" version="0.86.0" targetFramework="net452" />
<?xml version="1.0" encoding="utf-8"?>
 
<packages>
<package id="Lucene.Net" version="3.0.3" targetFramework="net452" />
<package id="SharpZipLib" version="0.86.0" targetFramework="net452" />
</packages>