<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="/rss.xsl"?><rss version="2.0"><channel><title>lifti Releases Rss Feed</title><link>http://lifti.codeplex.com/Release/ProjectReleases.aspx</link><description>lifti Releases Rss Description</description><item><title>Updated Release: LIFTI 1.0 (Jul 01, 2011)</title><link>http://lifti.codeplex.com/releases/view/69401</link><description>&lt;div class="wikidoc"&gt;First release marked as stable. This release is also available as a nuget package, so you might prefer to download the binaries from there.&lt;br /&gt;
&lt;h2&gt;Bug fixes&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;Fixed bug where removing items that aren&amp;#39;t contained in a PersistedFullTextIndex raised an exception&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>MikeGoatly</author><pubDate>Sat, 02 Jul 2011 10:12:24 GMT</pubDate><guid isPermaLink="false">Updated Release: LIFTI 1.0 (Jul 01, 2011) 20110702101224A</guid></item><item><title>Released: LIFTI 1.0 (Jul 01, 2011)</title><link>http://lifti.codeplex.com/releases/view/69401</link><description>
&lt;div class="wikidoc"&gt;First release marked as stable. This release is also available as a nuget package, so you might prefer to download the binaries from there.&lt;br&gt;
&lt;h2&gt;Bug fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fixed bug where removing items that aren&amp;#39;t contained in a PersistedFullTextIndex raised an exception&lt;/li&gt;&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
</description><author></author><pubDate>Sat, 02 Jul 2011 10:12:24 GMT</pubDate><guid isPermaLink="false">Released: LIFTI 1.0 (Jul 01, 2011) 20110702101224A</guid></item><item><title>Created Release: LIFTI 1.0 (Jul 01, 2011)</title><link>http://lifti.codeplex.com/releases?ReleaseId=69401</link><description>&lt;div class="wikidoc"&gt;First release marked as stable.&lt;br /&gt;
&lt;h2&gt;Bug fixes&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;Fixed bug where removing items that aren&amp;#39;t contained in a PersistedFullTextIndex raised an exception&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>MikeGoatly</author><pubDate>Fri, 01 Jul 2011 21:24:48 GMT</pubDate><guid isPermaLink="false">Created Release: LIFTI 1.0 (Jul 01, 2011) 20110701092448P</guid></item><item><title>Released: LIFTI 1.0 (Jul 01, 2011)</title><link>http://lifti.codeplex.com/releases/view/69401</link><description>
&lt;div class="wikidoc"&gt;First release marked as stable.&lt;br&gt;
&lt;h2&gt;Bug fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fixed bug where removing items that aren&amp;#39;t contained in a PersistedFullTextIndex raised an exception&lt;/li&gt;&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
</description><author></author><pubDate>Fri, 01 Jul 2011 21:24:48 GMT</pubDate><guid isPermaLink="false">Released: LIFTI 1.0 (Jul 01, 2011) 20110701092448P</guid></item><item><title>Created Release: LIFTI 0.6 (Jun 25, 2011)</title><link>http://lifti.codeplex.com/releases?ReleaseId=69002</link><description>&lt;div class="wikidoc"&gt;This is primarily a stabilization release although a few new features have been added.&lt;br /&gt;
&lt;h2&gt;New features:&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;PageCache now has a MaxCachedPages property, which can be used to configure the maximum number of pages that can be cached. The default is 1000. Pages are removed from the cache in least-used order.&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;Improvements:&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;Page data is buffered in-memory before being read or written. This is actually more performant, so the persisted full text index users should see a performance boost.&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;Bug fixes:&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;PersistedFullTextIndex is now thread-safe and can now be read by multiple readers. (The single-writer limitation is still in place, as with the standard updatable full text index, however.)&lt;/li&gt;
&lt;li&gt;A race condition could occur when indexing items in the persisted full text index in quick succession. This lead to data corruption in the backing file store.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>MikeGoatly</author><pubDate>Sat, 25 Jun 2011 18:06:00 GMT</pubDate><guid isPermaLink="false">Created Release: LIFTI 0.6 (Jun 25, 2011) 20110625060600P</guid></item><item><title>Released: LIFTI 0.6 (июн 25, 2011)</title><link>http://lifti.codeplex.com/releases/view/69002</link><description>
&lt;div class="wikidoc"&gt;This is primarily a stabilization release although a few new features have been added.&lt;br&gt;
&lt;h2&gt;New features:&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;PageCache now has a MaxCachedPages property, which can be used to configure the maximum number of pages that can be cached. The default is 1000. Pages are removed from the cache in least-used order.&lt;/li&gt;&lt;/ul&gt;
&lt;h2&gt;Improvements:&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Page data is buffered in-memory before being read or written. This is actually more performant, so the persisted full text index users should see a performance boost.&lt;/li&gt;&lt;/ul&gt;
&lt;h2&gt;Bug fixes:&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;PersistedFullTextIndex is now thread-safe and can now be read by multiple readers. (The single-writer limitation is still in place, as with the standard updatable full text index, however.)
&lt;/li&gt;&lt;li&gt;A race condition could occur when indexing items in the persisted full text index in quick succession. This lead to data corruption in the backing file store.&lt;/li&gt;&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
</description><author></author><pubDate>Sat, 25 Jun 2011 18:06:00 GMT</pubDate><guid isPermaLink="false">Released: LIFTI 0.6 (июн 25, 2011) 20110625060600P</guid></item><item><title>Updated Release: LIFTI 0.5 (Jun 06, 2011)</title><link>http://lifti.codeplex.com/releases/view/67837</link><description>&lt;div class="wikidoc"&gt;&lt;h2&gt;New features&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;A persisted full text index that automatically persists the index to a backing file store. This supports transactions so is safe to use inside a TransactionScope along with a database operation.&lt;/li&gt;
&lt;li&gt;Reworked API - this was a rationalisation process to make accessing the index somewhat more logical. See the breaking changes for more information.&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;Bug fixes&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;3 letter words ending in &amp;quot;ed&amp;quot; no longer throw an exception when indexed using the stemming word splitter.&lt;/li&gt;
&lt;li&gt;Words containing special characters, e.g. &amp;#246; &amp;#214; &amp;#228; &amp;#196; &amp;#252; &amp;#220; &amp;#223;, can now be indexed and searched on (Thanks to AlexWolters for reporting)&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;Breaking changes&lt;/h2&gt;
There were a few of these in this release unfortunately - sorry about that, but it&amp;#39;s for the greater good I think...&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Full text index constructors no longer take a delegate to obtain the text for an item in the index. E.g. new FullTextIndex&amp;lt;Customer&amp;gt;(c =&amp;gt; c.Name) is now new FullTextIndex&amp;lt;Customer&amp;gt;(). The delegate should now be provided on one of the Index methods, if required.&lt;/li&gt;
&lt;li&gt;Reindex methods have been removed - the Index methods on updatable indexes will now automatically re-index an item if it already exists.&lt;/li&gt;
&lt;li&gt;Serialization namespace and all related classes have been removed - these have been superceded by the PersistedFullTextIndex implementation - this automatically creates a persisted backing store and keeps it in sync with the in-memory index.&lt;/li&gt;
&lt;li&gt;Probably a couple of minor changes that won&amp;#39;t affect the general use of the API.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>MikeGoatly</author><pubDate>Mon, 06 Jun 2011 22:09:35 GMT</pubDate><guid isPermaLink="false">Updated Release: LIFTI 0.5 (Jun 06, 2011) 20110606100935P</guid></item><item><title>Released: LIFTI 0.5 (Jun 06, 2011)</title><link>http://lifti.codeplex.com/releases/view/67837</link><description>
&lt;div class="wikidoc"&gt;
&lt;h2&gt;New features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;A persisted full text index that automatically persists the index to a backing file store. This supports transactions so is safe to use inside a TransactionScope along with a database operation.
&lt;/li&gt;&lt;li&gt;Reworked API - this was a rationalisation process to make accessing the index somewhat more logical. See the breaking changes for more information.&lt;/li&gt;&lt;/ul&gt;
&lt;h2&gt;Bug fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;3 letter words ending in &amp;quot;ed&amp;quot; no longer throw an exception when indexed using the stemming word splitter.
&lt;/li&gt;&lt;li&gt;Words containing special characters, e.g. &amp;#246; &amp;#214; &amp;#228; &amp;#196; &amp;#252; &amp;#220; &amp;#223;, can now be indexed and searched on (Thanks to AlexWolters for reporting)&lt;/li&gt;&lt;/ul&gt;
&lt;h2&gt;Breaking changes&lt;/h2&gt;
There were a few of these in this release unfortunately - sorry about that, but it&amp;#39;s for the greater good I think...&lt;br&gt;
&lt;ul&gt;
&lt;li&gt;Full text index constructors no longer take a delegate to obtain the text for an item in the index. E.g. new FullTextIndex&amp;lt;Customer&amp;gt;(c =&amp;gt; c.Name) is now new FullTextIndex&amp;lt;Customer&amp;gt;(). The delegate should now be provided on one of the Index
 methods, if required. &lt;/li&gt;&lt;li&gt;Reindex methods have been removed - the Index methods on updatable indexes will now automatically re-index an item if it already exists.
&lt;/li&gt;&lt;li&gt;Serialization namespace and all related classes have been removed - these have been superceded by the PersistedFullTextIndex implementation - this automatically creates a persisted backing store and keeps it in sync with the in-memory index.
&lt;/li&gt;&lt;li&gt;Probably a couple of minor changes that won&amp;#39;t affect the general use of the API.&lt;/li&gt;&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
</description><author></author><pubDate>Mon, 06 Jun 2011 22:09:35 GMT</pubDate><guid isPermaLink="false">Released: LIFTI 0.5 (Jun 06, 2011) 20110606100935P</guid></item><item><title>Updated Release: LIFTI 0.4 (Feb 01, 2011)</title><link>http://lifti.codeplex.com/releases/view/60171</link><description>&lt;div class="wikidoc"&gt;This release of the LIFTI framework adds:
&lt;ul&gt;&lt;li&gt;An updatable index, from which you can remove or re-index items.&lt;/li&gt;
&lt;li&gt;Serialization - indexes can now be serialized and deserialized to binary data.&lt;/li&gt;
&lt;li&gt;Thread safety - by default the index can be accessed safely by multiple threads. This implements a multiple reader, single writer locking strategy.&lt;/li&gt;
&lt;li&gt;Optimisations in the Porter Stemming code, improving performance by 40-50%.&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;Breaking changes from 0.3 to 0.4:
&lt;ul&gt;&lt;li&gt;FullTextIndexer renamed to FullTextIndex.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>MikeGoatly</author><pubDate>Tue, 01 Feb 2011 08:30:10 GMT</pubDate><guid isPermaLink="false">Updated Release: LIFTI 0.4 (Feb 01, 2011) 20110201083010A</guid></item><item><title>Released: LIFTI 0.4 (фев 01, 2011)</title><link>http://lifti.codeplex.com/releases/view/60171</link><description>
&lt;div class="wikidoc"&gt;This release of the LIFTI framework adds:
&lt;ul&gt;
&lt;li&gt;An updatable index, from which you can remove or re-index items. &lt;/li&gt;&lt;li&gt;Serialization - indexes can now be serialized and deserialized to binary data.
&lt;/li&gt;&lt;li&gt;Thread safety - by default the index can be accessed safely by multiple threads. This implements a multiple reader, single writer locking strategy.
&lt;/li&gt;&lt;li&gt;Optimisations in the Porter Stemming code, improving performance by 40-50%.&lt;/li&gt;&lt;/ul&gt;
&lt;br&gt;
Breaking changes from 0.3 to 0.4:
&lt;ul&gt;
&lt;li&gt;FullTextIndexer renamed to FullTextIndex.&lt;/li&gt;&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
</description><author></author><pubDate>Tue, 01 Feb 2011 08:30:10 GMT</pubDate><guid isPermaLink="false">Released: LIFTI 0.4 (фев 01, 2011) 20110201083010A</guid></item><item><title>Created Release: 0.4 (Feb 01, 2011)</title><link>http://lifti.codeplex.com/releases?ReleaseId=60171</link><description>&lt;div class="wikidoc"&gt;This release of the LIFTI framework adds:
&lt;ul&gt;&lt;li&gt;An updatable index, from which you can remove or re-index items.&lt;/li&gt;
&lt;li&gt;Serialization - indexes can now be serialized and deserialized to binary data.&lt;/li&gt;
&lt;li&gt;Thread safety - by default the index can be accessed safely by multiple threads. This implements a multiple reader, single writer locking strategy.&lt;/li&gt;
&lt;li&gt;Optimisations in the Porter Stemming code, improving performance by 40-50%.&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;Breaking changes from 0.3 to 0.4:
&lt;ul&gt;&lt;li&gt;FullTextIndexer renamed to FullTextIndex.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>MikeGoatly</author><pubDate>Tue, 01 Feb 2011 08:29:19 GMT</pubDate><guid isPermaLink="false">Created Release: 0.4 (Feb 01, 2011) 20110201082919A</guid></item><item><title>Created Release: Lifti binaries v0.3 (Dec 24, 2010)</title><link>http://lifti.codeplex.com/releases?ReleaseId=58061</link><description>&lt;div class="wikidoc"&gt;This release introduces a new query engine - see &lt;a href="http://www.goatly.net/2010/12/24/advanced-querying-with-lifti.aspx" class="externalLink"&gt;http://www.goatly.net/2010/12/24/advanced-querying-with-lifti.aspx&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; for more information. I&amp;#39;ll update the documentation over the next few days.&lt;br /&gt;&lt;br /&gt;This download also contains a nice little sample that allows you to search more realistic text.&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>MikeGoatly</author><pubDate>Fri, 24 Dec 2010 16:55:31 GMT</pubDate><guid isPermaLink="false">Created Release: Lifti binaries v0.3 (Dec 24, 2010) 20101224045531P</guid></item><item><title>Released: Lifti binaries v0.3 (Dec 24, 2010)</title><link>http://lifti.codeplex.com/releases/view/58061</link><description>
&lt;div class="wikidoc"&gt;This release introduces a new query engine - see &lt;a href="http://www.goatly.net/2010/12/24/advanced-querying-with-lifti.aspx"&gt;
http://www.goatly.net/2010/12/24/advanced-querying-with-lifti.aspx&lt;span&gt;&lt;/span&gt;&lt;/a&gt; for more information. I&amp;#39;ll update the documentation over the next few days.&lt;br&gt;
&lt;br&gt;
This download also contains a nice little sample that allows you to search more realistic text.&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
</description><author></author><pubDate>Fri, 24 Dec 2010 16:55:31 GMT</pubDate><guid isPermaLink="false">Released: Lifti binaries v0.3 (Dec 24, 2010) 20101224045531P</guid></item><item><title>Created Release: Lifti binaries v0.2 (Dec 07, 2010)</title><link>http://lifti.codeplex.com/releases?ReleaseId=57148</link><description>&lt;div class="wikidoc"&gt;This release includes the new StemmingWordSplitter implementation that allows you to build indexes that are capable of handling word derivations For example when the stemming word splitter has been used with a full text indexer, searching for &lt;b&gt;congratulation&lt;/b&gt; will return items indexed against the words &lt;b&gt;congratulate&lt;/b&gt;, &lt;b&gt;congratulatory&lt;/b&gt; and &lt;b&gt;congratulations&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;Using the stemming word splitter is as simple as:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;var indexer = new FullTextIndexer&amp;lt;MyThing&amp;gt;(t =&amp;gt; t.Description)
{
    WordSplitter = new StemmingWordSplitter() 
};&lt;/pre&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>MikeGoatly</author><pubDate>Tue, 07 Dec 2010 22:33:06 GMT</pubDate><guid isPermaLink="false">Created Release: Lifti binaries v0.2 (Dec 07, 2010) 20101207103306P</guid></item><item><title>Released: Lifti binaries v0.2 (Dec 07, 2010)</title><link>http://lifti.codeplex.com/releases/view/57148</link><description>
&lt;div class="wikidoc"&gt;This release includes the new StemmingWordSplitter implementation that allows you to build indexes that are capable of handling word derivations For example when the stemming word splitter has been used with a full text indexer, searching
 for &lt;b&gt;congratulation&lt;/b&gt; will return items indexed against the words &lt;b&gt;congratulate&lt;/b&gt;,
&lt;b&gt;congratulatory&lt;/b&gt; and &lt;b&gt;congratulations&lt;/b&gt;.&lt;br&gt;
&lt;br&gt;
Using the stemming word splitter is as simple as:&lt;br&gt;
&lt;br&gt;
&lt;pre&gt;var indexer = new FullTextIndexer&amp;lt;MyThing&amp;gt;(t =&amp;gt; t.Description)
{
    WordSplitter = new StemmingWordSplitter() 
};&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
</description><author></author><pubDate>Tue, 07 Dec 2010 22:33:06 GMT</pubDate><guid isPermaLink="false">Released: Lifti binaries v0.2 (Dec 07, 2010) 20101207103306P</guid></item><item><title>Created Release: Lifti binaries v0.1 (Oct 06, 2010)</title><link>http://lifti.codeplex.com/releases?ReleaseId=53516</link><description>&lt;div class="wikidoc"&gt;This release is just a binary version of the latest source.&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>MikeGoatly</author><pubDate>Wed, 06 Oct 2010 15:00:49 GMT</pubDate><guid isPermaLink="false">Created Release: Lifti binaries v0.1 (Oct 06, 2010) 20101006030049P</guid></item><item><title>Released: Lifti binaries v0.1 (окт 06, 2010)</title><link>http://lifti.codeplex.com/releases/view/53516</link><description>&lt;div class=wikidoc&gt;This release is just a binary version of the latest source.&lt;/div&gt;&lt;div&gt;&lt;/div&gt;</description><author></author><pubDate>Wed, 06 Oct 2010 15:00:49 GMT</pubDate><guid isPermaLink="false">Released: Lifti binaries v0.1 (окт 06, 2010) 20101006030049P</guid></item></channel></rss>