<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>Venexus DotNetNuke Blog - MS SQL Server</title>
    <link>http://dnnblog.venexus.com/</link>
    <description>DotNetNuke Articles, Code Snippets, Errors, and News</description>
    <language>en-us</language>
    <copyright>Venexus, Inc.</copyright>
    <lastBuildDate>Sat, 26 May 2007 17:48:57 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 1.9.6264.0</generator>
    <managingEditor>xfernal@venexus.com</managingEditor>
    <webMaster>xfernal@venexus.com</webMaster>
    <item>
      <trackback:ping>http://dnnblog.venexus.com/Trackback.aspx?guid=555bf1cc-f1fb-4c19-8083-a8ac8fc6c42b</trackback:ping>
      <pingback:server>http://dnnblog.venexus.com/pingback.aspx</pingback:server>
      <pingback:target>http://dnnblog.venexus.com/PermaLink,guid,555bf1cc-f1fb-4c19-8083-a8ac8fc6c42b.aspx</pingback:target>
      <dc:creator>Jeff Smith</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <font color="#0000ff" size="2">
          <p>
            <font color="#000000">We had a DNN 4.4.1 to 4.5.1 upgrade that threw a few SQLDataProvider
errors during the installer that were caused by duplicate files in DNN Files table.
Not sure how they got there, but here is a SQL statement to check if they exist:</font>
          </p>
          <font color="#0000ff" size="2">
            <p>
SELECT
</p>
          </font>
          <font color="#000000" size="2"> PortalID</font>
          <font color="#808080" size="2">,</font>
          <font color="#000000" size="2">
          </font>
          <font color="#0000ff" size="2">Filename</font>
          <font color="#808080" size="2">,</font>
          <font color="#000000" size="2"> Folder</font>
          <font color="#808080" size="2">,</font>
          <font color="#000000" size="2">
          </font>
          <font color="#ff00ff" size="2">COUNT</font>
          <font color="#808080" size="2">(</font>
          <font color="#0000ff" size="2">Filename</font>
          <font color="#808080" size="2">)</font>
          <font color="#000000" size="2">
          </font>
          <font color="#0000ff" size="2">AS</font>
          <font size="2">
            <font color="#000000"> NumOccurrences</font>
          </font>
          <font color="#0000ff" size="2">
            <p>
FROM
</p>
          </font>
          <font size="2">
            <font color="#000000"> files</font>
          </font>
          <font color="#0000ff" size="2">
            <p>
GROUP
</p>
          </font>
          <font color="#000000" size="2">
          </font>
          <font color="#0000ff" size="2">BY</font>
          <font color="#000000" size="2">
          </font>
          <font color="#0000ff" size="2">Filename</font>
          <font color="#808080" size="2">,</font>
          <font color="#000000" size="2"> PortalID</font>
          <font color="#808080" size="2">,</font>
          <font size="2">
            <font color="#000000"> Folder</font>
          </font>
          <font color="#0000ff" size="2">
            <p>
HAVING
</p>
          </font>
          <font color="#000000" size="2">
          </font>
          <font color="#808080" size="2">(</font>
          <font color="#000000" size="2">
          </font>
          <font color="#ff00ff" size="2">COUNT</font>
          <font color="#808080" size="2">(</font>
          <font color="#0000ff" size="2">Filename</font>
          <font color="#808080" size="2">)</font>
          <font color="#000000" size="2">
          </font>
          <font color="#808080" size="2">&gt;</font>
          <font color="#000000" size="2"> 1 </font>
          <font color="#808080" size="2">AND</font>
          <font color="#000000" size="2">
          </font>
          <font color="#ff00ff" size="2">Count</font>
          <font color="#808080" size="2">(</font>
          <font color="#000000" size="2">PortalID</font>
          <font color="#808080" size="2">)</font>
          <font color="#000000" size="2">
          </font>
          <font color="#808080" size="2">&gt;</font>
          <font color="#000000" size="2"> 1 </font>
          <font color="#808080" size="2">AND</font>
          <font color="#000000" size="2">
          </font>
          <font color="#ff00ff" size="2">Count</font>
          <font color="#808080" size="2">(</font>
          <font color="#000000" size="2">Folder</font>
          <font color="#808080" size="2">)</font>
          <font color="#000000" size="2">
          </font>
          <font color="#808080" size="2">&gt;</font>
          <font color="#000000" size="2"> 1</font>
          <font color="#808080" size="2">)
<p></p></font>
        </font>
        <font color="#000000" size="2">
          <strong>Here is the SQL that was
provided in the log file from the installer:</strong>
        </font>
        <p>
          <font color="#808080" size="2">/* add unique constraint to Files table */<br />
IF NOT EXISTS (select * from dbo.sysobjects where id = object_id(N'dbo.[IX_FileName]')
and OBJECTPROPERTY(id, N'IsConstraint') = 1)<br />
BEGIN<br />
  declare @FolderID int<br />
  declare @FileName nvarchar(100)<br />
  declare @FileID int<br />
  declare @MinFileID int</font>
        </p>
        <p>
          <font color="#808080" size="2">  select @FolderID = min(FolderID)<br />
  from Folders<br />
  while @FolderID is not null<br />
  begin  
<br />
    /* check for duplicate Filenames */<br />
    select @FileName = null<br />
    select @FileName = FileName<br />
    from Files 
<br />
    where FolderID = @FolderID 
<br />
    group by FileName 
<br />
    having COUNT(*) &gt; 1<br />
  
<br />
    /* if duplicates exist */<br />
    if @FileName is not null<br />
    begin<br />
      /* iterate through the duplicates */<br />
      select @FileID = min(FileID)<br />
      from Files<br />
      where FolderID = @FolderID<br />
      and FileName = @FileName</font>
        </p>
        <p>
          <font color="#808080" size="2">      /* save min FileID */<br />
      select @MinFileID = @FileID</font>
        </p>
        <p>
          <font color="#808080" size="2">      while @FileID is not
null<br />
      begin<br />
        if @FileID &lt;&gt; @MinFileID<br />
        begin<br />
          /* remove duplicate file */<br />
          delete<br />
          from Files<br />
          where FileID = @FileID<br />
        end</font>
        </p>
        <p>
          <font color="#808080" size="2">        select @FileID
= min(FileID)<br />
        from Files<br />
        where FolderID = @FolderID<br />
        and FileName = @FileName<br />
        and FileID &gt; @FileID<br />
      end<br />
    end</font>
        </p>
        <p>
          <font color="#808080" size="2">    select @FolderID = min(FolderID)<br />
    from Folders<br />
    where FolderID &gt; @FolderID<br />
  end<br />
  <br />
  ALTER TABLE dbo.Files ADD CONSTRAINT<br />
    IX_FileName UNIQUE NONCLUSTERED 
<br />
    (<br />
      FolderID,<br />
      FileName<br />
    ) ON [PRIMARY]<br />
END</font>
        </p>
        <p>
          <font size="1">
            <font color="#000000">
            </font> 
</font>
        </p>
        <img width="0" height="0" src="http://dnnblog.venexus.com/aggbug.ashx?id=555bf1cc-f1fb-4c19-8083-a8ac8fc6c42b" />
      </body>
      <title>Check Duplicate DNN Files SQL</title>
      <guid isPermaLink="false">http://dnnblog.venexus.com/PermaLink,guid,555bf1cc-f1fb-4c19-8083-a8ac8fc6c42b.aspx</guid>
      <link>http://dnnblog.venexus.com/Check+Duplicate+DNN+Files+SQL.aspx</link>
      <pubDate>Sat, 26 May 2007 17:48:57 GMT</pubDate>
      <description>&lt;font color=#0000ff size=2&gt; 
&lt;p&gt;
&lt;font color=#000000&gt;We had a DNN 4.4.1 to 4.5.1 upgrade that threw a few SQLDataProvider
errors during the installer that were caused by duplicate files in DNN Files table.
Not sure how they got there, but here is a SQL statement to check if they exist:&lt;/font&gt;
&lt;/p&gt;
&lt;font color=#0000ff size=2&gt; 
&lt;p&gt;
SELECT
&lt;/font&gt;&lt;font color=#000000 size=2&gt; PortalID&lt;/font&gt;&lt;font color=#808080 size=2&gt;,&lt;/font&gt;&lt;font color=#000000 size=2&gt; &lt;/font&gt;&lt;font color=#0000ff size=2&gt;Filename&lt;/font&gt;&lt;font color=#808080 size=2&gt;,&lt;/font&gt;&lt;font color=#000000 size=2&gt; Folder&lt;/font&gt;&lt;font color=#808080 size=2&gt;,&lt;/font&gt;&lt;font color=#000000 size=2&gt; &lt;/font&gt;&lt;font color=#ff00ff size=2&gt;COUNT&lt;/font&gt;&lt;font color=#808080 size=2&gt;(&lt;/font&gt;&lt;font color=#0000ff size=2&gt;Filename&lt;/font&gt;&lt;font color=#808080 size=2&gt;)&lt;/font&gt;&lt;font color=#000000 size=2&gt; &lt;/font&gt;&lt;font color=#0000ff size=2&gt;AS&lt;/font&gt;&lt;font size=2&gt;&lt;font color=#000000&gt; NumOccurrences&lt;/font&gt;&gt;
&lt;/font&gt;&lt;font color=#0000ff size=2&gt; 
&lt;p&gt;
FROM
&lt;/font&gt;&lt;font size=2&gt;&lt;font color=#000000&gt; files&lt;/font&gt;&gt;
&lt;/font&gt;&lt;font color=#0000ff size=2&gt; 
&lt;p&gt;
GROUP
&lt;/font&gt;&lt;font color=#000000 size=2&gt; &lt;/font&gt;&lt;font color=#0000ff size=2&gt;BY&lt;/font&gt;&lt;font color=#000000 size=2&gt; &lt;/font&gt;&lt;font color=#0000ff size=2&gt;Filename&lt;/font&gt;&lt;font color=#808080 size=2&gt;,&lt;/font&gt;&lt;font color=#000000 size=2&gt; PortalID&lt;/font&gt;&lt;font color=#808080 size=2&gt;,&lt;/font&gt;&lt;font size=2&gt;&lt;font color=#000000&gt; Folder&lt;/font&gt;&gt;
&lt;/font&gt;&lt;font color=#0000ff size=2&gt; 
&lt;p&gt;
HAVING
&lt;/font&gt;&lt;font color=#000000 size=2&gt; &lt;/font&gt;&lt;font color=#808080 size=2&gt;(&lt;/font&gt;&lt;font color=#000000 size=2&gt; &lt;/font&gt;&lt;font color=#ff00ff size=2&gt;COUNT&lt;/font&gt;&lt;font color=#808080 size=2&gt;(&lt;/font&gt;&lt;font color=#0000ff size=2&gt;Filename&lt;/font&gt;&lt;font color=#808080 size=2&gt;)&lt;/font&gt;&lt;font color=#000000 size=2&gt; &lt;/font&gt;&lt;font color=#808080 size=2&gt;&amp;gt;&lt;/font&gt;&lt;font color=#000000 size=2&gt; 1 &lt;/font&gt;&lt;font color=#808080 size=2&gt;AND&lt;/font&gt;&lt;font color=#000000 size=2&gt; &lt;/font&gt;&lt;font color=#ff00ff size=2&gt;Count&lt;/font&gt;&lt;font color=#808080 size=2&gt;(&lt;/font&gt;&lt;font color=#000000 size=2&gt;PortalID&lt;/font&gt;&lt;font color=#808080 size=2&gt;)&lt;/font&gt;&lt;font color=#000000 size=2&gt; &lt;/font&gt;&lt;font color=#808080 size=2&gt;&amp;gt;&lt;/font&gt;&lt;font color=#000000 size=2&gt; 1 &lt;/font&gt;&lt;font color=#808080 size=2&gt;AND&lt;/font&gt;&lt;font color=#000000 size=2&gt; &lt;/font&gt;&lt;font color=#ff00ff size=2&gt;Count&lt;/font&gt;&lt;font color=#808080 size=2&gt;(&lt;/font&gt;&lt;font color=#000000 size=2&gt;Folder&lt;/font&gt;&lt;font color=#808080 size=2&gt;)&lt;/font&gt;&lt;font color=#000000 size=2&gt; &lt;/font&gt;&lt;font color=#808080 size=2&gt;&amp;gt;&lt;/font&gt;&lt;font color=#000000 size=2&gt; 1&lt;/font&gt;&lt;font color=#808080 size=2&gt;)&gt;
&lt;p&gt;
&lt;/font&gt;&lt;/font&gt;&lt;font color=#000000 size=2&gt;&lt;strong&gt;Here is the SQL that was provided
in the log file from the installer:&lt;/strong&gt;&lt;/font&gt;&gt;
&lt;p&gt;
&lt;font color=#808080 size=2&gt;/* add unique constraint to Files table */&lt;br&gt;
IF NOT EXISTS (select * from dbo.sysobjects where id = object_id(N'dbo.[IX_FileName]')
and OBJECTPROPERTY(id, N'IsConstraint') = 1)&lt;br&gt;
BEGIN&lt;br&gt;
&amp;nbsp; declare @FolderID int&lt;br&gt;
&amp;nbsp; declare @FileName nvarchar(100)&lt;br&gt;
&amp;nbsp; declare @FileID int&lt;br&gt;
&amp;nbsp; declare @MinFileID int&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#808080 size=2&gt;&amp;nbsp; select @FolderID = min(FolderID)&lt;br&gt;
&amp;nbsp; from Folders&lt;br&gt;
&amp;nbsp; while @FolderID is not null&lt;br&gt;
&amp;nbsp; begin&amp;nbsp; 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; /* check for duplicate Filenames */&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; select @FileName = null&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; select @FileName = FileName&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; from Files 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; where FolderID = @FolderID 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; group by FileName 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; having COUNT(*) &amp;gt; 1&lt;br&gt;
&amp;nbsp; 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; /* if duplicates exist */&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; if @FileName is not null&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; begin&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* iterate through the duplicates */&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; select @FileID = min(FileID)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; from Files&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; where FolderID = @FolderID&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; and FileName = @FileName&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#808080 size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* save min FileID */&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; select @MinFileID = @FileID&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#808080 size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while @FileID is not null&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; begin&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if @FileID &amp;lt;&amp;gt; @MinFileID&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; begin&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* remove duplicate file */&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; delete&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; from Files&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; where FileID = @FileID&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#808080 size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; select @FileID
= min(FileID)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; from Files&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; where FolderID = @FolderID&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; and FileName = @FileName&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; and FileID &amp;gt; @FileID&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#808080 size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; select @FolderID = min(FolderID)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; from Folders&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; where FolderID &amp;gt; @FolderID&lt;br&gt;
&amp;nbsp; end&lt;br&gt;
&amp;nbsp;&amp;nbsp;&lt;br&gt;
&amp;nbsp; ALTER TABLE dbo.Files ADD CONSTRAINT&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; IX_FileName UNIQUE NONCLUSTERED 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; (&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FolderID,&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FileName&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; ) ON [PRIMARY]&lt;br&gt;
END&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font size=1&gt;&lt;font color=#000000&gt;&lt;/font&gt;&amp;nbsp;
&lt;/p&gt;
&gt;&lt;img width="0" height="0" src="http://dnnblog.venexus.com/aggbug.ashx?id=555bf1cc-f1fb-4c19-8083-a8ac8fc6c42b" /&gt;</description>
      <category>DotNetNuke Errors;MS SQL Server</category>
    </item>
    <item>
      <trackback:ping>http://dnnblog.venexus.com/Trackback.aspx?guid=01d9d0ef-6e5d-40d2-b364-000e47ca30e3</trackback:ping>
      <pingback:server>http://dnnblog.venexus.com/pingback.aspx</pingback:server>
      <pingback:target>http://dnnblog.venexus.com/PermaLink,guid,01d9d0ef-6e5d-40d2-b364-000e47ca30e3.aspx</pingback:target>
      <dc:creator>Jeff Smith</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <div style="MARGIN: 0in 0in 0pt">
          <p>
            <font face="Verdana"> I have been asked to compare the differences between our
search engine and Open-SearchEngine. I agree this is an important question that needs
to be answered, so I decided to put together a comparison between the core DNN Search,
Open-SearchEngine, and Venexus Search Engine. While my opinion of which is the best,
is defintely biased toward our own product, I have tried to provide an in-depth look
at the basics of how each search engine works, a feature matrix, and simple search
results analysis. Without further ado, read on...</font>
          </p>
        </div>
        <div style="MARGIN: 0in 0in 0pt">
          <strong>
            <font face="Verdana" size="3">DotNetNuke
Search (core project)</font>
          </strong>
        </div>
        <div style="MARGIN: 0in 0in 0pt">
          <font face="Verdana">DNN Search is part of the
DNN core that is installed and configured out of the box.</font>
        </div>
        <div style="MARGIN: 0in 0in 0pt">
          <font face="Verdana">
          </font> 
</div>
        <div style="MARGIN: 0in 0in 0pt">
          <font face="Verdana">DotNetNuke Search consists of 4
main pieces:</font>
        </div>
        <ul style="MARGIN-TOP: 0in" type="disc">
          <li style="MARGIN: 0in 0in 0pt">
            <font face="Verdana">
              <em>Scheduled Task</em>
            </font>
          </li>
        </ul>
        <div style="MARGIN: 0in 0in 0pt 0.5in">
          <p>
            <font face="Verdana">The scheduled task initiates the process of indexing the modules,
at the scheduled time interval. An iteration of all modules that support iSearchable
is performed. During this process, text that is extracted from the module is cleaned,
parsed, and added to search word and search items tables.</font>
          </p>
        </div>
        <ul style="MARGIN-TOP: 0in" type="disc">
          <li style="MARGIN: 0in 0in 0pt">
            <em>
              <font face="Verdana">Search Admin</font>
            </em>
          </li>
        </ul>
        <p>
          <font face="Verdana">
            <em>                    </em>The
search admin is for setting the maximum word length, minimum word length, option to
include common words, and the option to include numbers. </font>
        </p>
        <ul style="MARGIN-TOP: 0in" type="disc">
          <li style="MARGIN: 0in 0in 0pt">
            <em>
              <font face="Verdana">Search Input Module</font>
            </em>
          </li>
        </ul>
        <div style="MARGIN: 0in 0in 0pt 0.5in">
          <p>
            <font face="Verdana">A module or skin object can be used to provide the form for the
search query. In module settings, you can use the default button, or an image. You
do not have the option to change this image within the module, nor change the text.
Styles can be used to make some look and feel changes, but it is limited. When a search
is performed, the user is redirected to the Search Results page.</font>
          </p>
        </div>
        <ul style="MARGIN-TOP: 0in" type="disc">
          <li style="MARGIN: 0in 0in 0pt">
            <font face="Verdana">
              <em>Search Results Module</em>
            </font>
          </li>
        </ul>
        <div style="MARGIN: 0in 0in 0pt 0.5in">
          <font face="Verdana">This module provides the
search results. In the settings, you can set the maximum search results, results per
page, maximum title length, maximum description length, and the option to show description.
Results are limited to the exact word queried.</font>
        </div>
        <div style="MARGIN: 0in 0in 0pt">
          <font face="Verdana">
          </font> 
</div>
        <div style="MARGIN: 0in 0in 0pt">
          <font face="Verdana">Oddly enough, there no longer
appears to be a DNN forum for search, or a blog dedicated to it on the </font>
          <a href="http://www.dotnetnuke.com/" _fcksavedurl="http://www.dotnetnuke.com">
            <font face="Verdana">DotNetNuke
website</font>
          </a>
          <font face="Verdana">. However, a good place to find out more about
the core module is </font>
          <a href="http://www.innovatasites.com/tabid/1341/Default.aspx" _fcksavedurl="http://www.innovatasites.com/tabid/1341/Default.aspx">
            <font face="Verdana">ecktwo’s
site</font>
          </a>
          <font face="Verdana">. There is a lot of information about how all
the pieces work together, as well as the bugs/issues of DotNetNuke Search. There is
also a tutorial and report on </font>
          <a href="http://www.innovatasites.com/tabid/2497/Default.aspx" _fcksavedurl="http://www.innovatasites.com/tabid/2497/Default.aspx">
            <font face="Verdana">DNN
Search for DNN 4</font>
          </a>
          <font face="Verdana">.</font>
        </div>
        <div style="MARGIN: 0in 0in 0pt">
          <font face="Verdana">
          </font> 
</div>
        <div style="MARGIN: 0in 0in 0pt">
          <strong>
            <font face="Verdana" size="3">Open-SearchEngine</font>
          </strong>
        </div>
        <div style="MARGIN: 0in 0in 0pt">
          <a href="http://www.opendnn.com/Products/OpenSearchEngine/Features/tabid/69/Default.aspx" _fcksavedurl="http://www.opendnn.com/Products/OpenSearchEngine/Features/tabid/69/Default.aspx">
            <font face="Verdana">Open-SearchEngine</font>
          </a>
          <font face="Verdana"> is
developed by </font>
          <a href="http://www.xepient.com/" _fcksavedurl="http://www.xepient.com/">
            <font face="Verdana">Xepient
Solutions</font>
          </a>
          <font face="Verdana">. The package is capable of indexing HTML
content as well as PDF’s and several Office documents. Open-SearchEngine uses </font>
          <a href="http://incubator.apache.org/lucene.net/" _fcksavedurl="http://incubator.apache.org/lucene.net/">
            <font face="Verdana">Lucene.Net</font>
          </a>
          <font face="Verdana">,
a port of the </font>
          <a href="http://lucene.apache.org/java/docs/index.html" _fcksavedurl="http://lucene.apache.org/java/docs/index.html">
            <font face="Verdana">Java
Lucene Search Engine</font>
          </a>
          <font face="Verdana">, for indexing and querying.</font>
        </div>
        <div style="MARGIN: 0in 0in 0pt">
          <font face="Verdana">
          </font> 
</div>
        <div style="MARGIN: 0in 0in 0pt">
          <font face="Verdana">Open-Search Engine consists
of 4 main pieces:</font>
        </div>
        <ul style="MARGIN-TOP: 0in" type="disc">
          <li style="MARGIN: 0in 0in 0pt">
            <em>
              <font face="Verdana">Scheduled Task </font>
            </em>
          </li>
        </ul>
        <div style="MARGIN: 0in 0in 0pt 0.5in">
          <p>
            <font face="Verdana">Test The scheduled task initiates the process of spidering, at
the scheduled time interval. Lucene.Net handles indexing of the data.</font>
          </p>
        </div>
        <ul style="MARGIN-TOP: 0in" type="disc">
          <li style="MARGIN: 0in 0in 0pt">
            <font face="Verdana">
              <em>Search Engine Admin Module</em>
            </font>
          </li>
        </ul>
        <div style="MARGIN: 0in 0in 0pt 0.5in">
          <p>
            <font face="Verdana">This module provides an interface for configuring the search
engine to your preferences. You can add a starting URL and by default, spidering is
enabled. This allows you to offer multiple sites in your search engine. However, unless
disabled, each time you run the process to update the index, all URLs are re-crawled.
With many URLs on the site(s) you index, it can lead to a very long time between
the completion of crawling and indexing runs.</font>
          </p>
        </div>
        <ul style="MARGIN-TOP: 0in" type="disc">
          <li style="MARGIN: 0in 0in 0pt">
            <font face="Verdana">
              <em>Search Input Module</em>  </font>
          </li>
        </ul>
        <div style="MARGIN: 0in 0in 0pt 0.5in">
          <p>
            <font face="Verdana">A module or skin object can be used to provide the form for the
search query. In module settings, you can use the default button, or an image. You
also have the option to add “Search” as text or image before the textbox.</font>
          </p>
        </div>
        <ul style="MARGIN-TOP: 0in" type="disc">
          <li style="MARGIN: 0in 0in 0pt">
            <font face="Verdana">
              <em>Search Results Module</em>
            </font>
          </li>
        </ul>
        <div style="MARGIN: 0in 0in 0pt 0.5in">
          <font face="Verdana">This module provides the
search results. In the settings, you can set which sites are part of the results scope,
maximum results per page, maximum title length, title link target, and the option
to hide description.</font>
        </div>
        <div style="MARGIN: 0in 0in 0pt">
          <font face="Verdana">
          </font> 
</div>
        <div style="MARGIN: 0in 0in 0pt">
          <font face="Verdana">
          </font> 
</div>
        <div style="MARGIN: 0in 0in 0pt">
          <font face="Verdana">
          </font> 
</div>
        <div style="MARGIN: 0in 0in 0pt">
          <strong>
            <font face="Verdana" size="3">Venexus Search
Engine</font>
          </strong>
        </div>
        <div style="MARGIN: 0in 0in 0pt">
          <font face="Verdana">The </font>
          <a href="http://www.venexus.com/Services/DotNetNuke/DotNetNukeSearch/tabid/1280/Default.aspx" _fcksavedurl="http://www.venexus.com/Services/DotNetNuke/DotNetNukeSearch/tabid/1280/Default.aspx">
            <font face="Verdana">Venexus
Search Engine</font>
          </a>
          <font face="Verdana"> is quite different than the other 2
solutions. The package includes 2 modules and requires MS SQL Server Full-Text
Indexing. Like traditional crawlers, VSE can crawl and index a variety of data, but
where the real difference is seen is in it's ability to also “crawl” and index RSS
feeds. This is the key to keeping the search results up-to-date, while conserving
server and bandwidth resources. Rather than recrawling and reindexing all content,
"smart caching" is used to determine when RSS feeds need to be aggregated, and when
non-syndicated content needs to be recrawled on the site.</font>
        </div>
        <div style="MARGIN: 0in 0in 0pt">
          <font face="Verdana">  </font>
        </div>
        <div style="MARGIN: 0in 0in 0pt">
          <font face="Verdana">The Venexus Search Engine consists
of 2 main pieces:</font>
        </div>
        <ul style="MARGIN-TOP: 0in" type="disc">
          <li style="MARGIN: 0in 0in 0pt">
            <font face="Verdana">Seamus Module </font>
          </li>
        </ul>
        <div style="MARGIN: 0in 0in 0pt 0.5in">
          <p>
            <font face="Verdana">The Seamus module is the “search engine aggregation module utilizing
syndication”. On the first load of the module, Seamus iterates through the core
DNN modules on all portals that support the iPortable interface. Seamus uses this
“initial dump” to gather other URLs for the site. You also have the ability to add
feeds to Seamus, not only for your site, but any external site. With “global crawler”
enabled, any external site URLs that are discovered during crawling, are added to
the queue as well.  Using AJAX, Seamus performs crawling of 3 feeds and 3 URLs
with each load. If the user remains on the page, using AJAX, Seamus will continue
to crawl and save the data to the table for indexing.  This decreases the load
on the server by spreading the crawling and indexing across several user sessions,
rather than a single scheduled task.</font>
          </p>
        </div>
        <ul style="MARGIN-TOP: 0in" type="disc">
          <li style="MARGIN: 0in 0in 0pt">
            <font face="Verdana">Search Module </font>
          </li>
        </ul>
        <div style="MARGIN: 0in 0in 0pt 0.5in">
          <p>
            <font face="Verdana">The Search module provides the search box, as well as the results.
Using Microsoft SQL Server’s feature of Full-Text Indexing, data is indexed from the
crawling and storing provided by Seamus. Within the settings you can specify the search
button text or use you own custom image for the button, set maximum
search length, set search bx size, maximum results, results per page, set maximum
length of display URL, specify remote connection string (database other than
DNN), specify portal specific search, or allow user to select between site or all
of the web search.</font>
          </p>
        </div>
        <p style="MARGIN: 0in 0in 0pt">
          <strong>
            <font face="Verdana" size="3">Feature Comparison Matrix:</font>
          </strong>
        </p>
        <p style="MARGIN: 0in 0in 0pt">
          <font face="Verdana">Below you will find a list of features for DNN Search, Open-SearchEngine,
Venexus Search Engine Standard, and Venexus Search Engine PRO.</font>
        </p>
        <div style="MARGIN: 0in 0in 0pt">
          <table cellspacing="0" cellpadding="0" border="1">
            <tbody>
              <tr>
                <td valign="top" width="173">
                  <div align="center">
                    <strong>
                      <font face="Verdana" size="1">Feature</font>
                    </strong>
                  </div>
                </td>
                <td valign="top" width="134">
                  <div align="center">
                    <strong>
                      <font face="Verdana" size="1">DNN Search</font>
                    </strong>
                  </div>
                </td>
                <td valign="top" width="153">
                  <div align="center">
                    <strong>
                      <font face="Verdana" size="1">Open-SearchEngine</font>
                    </strong>
                  </div>
                </td>
                <td valign="top" width="127">
                  <div align="center">
                    <strong>
                      <font face="Verdana" size="1">Venexus Search Engine Standard</font>
                    </strong>
                  </div>
                </td>
                <td valign="top" width="152">
                  <div align="center">
                    <strong>
                      <font face="Verdana" size="1">Venexus Search Engine PRO</font>
                    </strong>
                  </div>
                </td>
              </tr>
              <tr>
                <td valign="top" width="173">
                  <div>
                    <strong>
                      <font face="Verdana" size="1">Crawling Method</font>
                    </strong>
                  </div>
                </td>
                <td valign="top" width="134">
                  <div>
                    <font face="Verdana" size="1">Module Indexer (Must implement iSearchable)</font>
                  </div>
                </td>
                <td valign="top" width="153">
                  <div>
                    <font face="Verdana" size="1">Custom URL crawler/spider (Must have starting URL
for each site, with crawling enabled)</font>
                  </div>
                </td>
                <td valign="top" width="127">
                  <div>
                    <font face="Verdana" size="1">Custom Crawler</font>
                  </div>
                  <div>
                    <font face="Verdana" size="1">(Uses iPortable interface, traditional URL crawler/spider,
and RSS aggregation)</font>
                  </div>
                </td>
                <td valign="top" width="152">
                  <div>
                    <font face="Verdana" size="1">Custom Crawler</font>
                  </div>
                  <div>
                    <font face="Verdana" size="1">(Uses iPortable interface, traditional URL crawler/spider,
and RSS aggregation)</font>
                  </div>
                </td>
              </tr>
              <tr>
                <td valign="top" width="173">
                  <div>
                    <strong>
                      <font face="Verdana" size="1">Crawl and Index Start</font>
                    </strong>
                  </div>
                </td>
                <td valign="top" width="134">
                  <div>
                    <font face="Verdana" size="1">Requires DNN Scheduled Task</font>
                  </div>
                </td>
                <td valign="top" width="153">
                  <div>
                    <font face="Verdana" size="1">Requires DNN Scheduled Task</font>
                  </div>
                </td>
                <td valign="top" width="127">
                  <div>
                    <font face="Verdana" size="1">User Interactive (AJAX in aggregation module)</font>
                  </div>
                </td>
                <td valign="top" width="152">
                  <div>
                    <font face="Verdana" size="1">User Interactive (AJAX in aggregation module)</font>
                  </div>
                </td>
              </tr>
              <tr>
                <td valign="top" width="173">
                  <div>
                    <strong>
                      <font face="Verdana" size="1">Global Crawler</font>
                    </strong>
                  </div>
                </td>
                <td valign="top" width="134">
                  <div>
                    <font face="Verdana" size="1">No</font>
                  </div>
                </td>
                <td valign="top" width="153">
                  <div>
                    <font face="Verdana" size="1">No (Requires input of each domain)</font>
                  </div>
                </td>
                <td valign="top" width="127">
                  <div>
                    <font face="Verdana" size="1">No</font>
                  </div>
                </td>
                <td valign="top" width="152">
                  <div>
                    <font face="Verdana" size="1">Yes</font>
                  </div>
                </td>
              </tr>
              <tr>
                <td valign="top" width="173">
                  <div>
                    <strong>
                      <font face="Verdana" size="1">DNN User Impersonation</font>
                    </strong>
                  </div>
                </td>
                <td valign="top" width="134">
                  <div>
                    <font face="Verdana" size="1">No</font>
                  </div>
                </td>
                <td valign="top" width="153">
                  <div>
                    <font face="Verdana" size="1">Yes</font>
                  </div>
                </td>
                <td valign="top" width="127">
                  <div>
                    <font face="Verdana" size="1">No</font>
                  </div>
                </td>
                <td valign="top" width="152">
                  <div>
                    <font face="Verdana" size="1">No (Version 2.0)</font>
                  </div>
                </td>
              </tr>
              <tr>
                <td valign="top" width="173">
                  <div>
                    <strong>
                      <font face="Verdana" size="1">Windows Authentication</font>
                    </strong>
                  </div>
                </td>
                <td valign="top" width="134">
                  <div>
                    <font face="Verdana" size="1">No</font>
                  </div>
                </td>
                <td valign="top" width="153">
                  <div>
                    <font face="Verdana" size="1">Yes</font>
                  </div>
                </td>
                <td valign="top" width="127">
                  <div>
                    <font face="Verdana" size="1">No</font>
                  </div>
                </td>
                <td valign="top" width="152">
                  <div>
                    <font face="Verdana" size="1">No (Version 2.0)</font>
                  </div>
                </td>
              </tr>
              <tr>
                <td valign="top" width="173">
                  <div>
                    <strong>
                      <font face="Verdana" size="1">Exclude List</font>
                    </strong>
                  </div>
                </td>
                <td valign="top" width="134">
                  <div>
                    <font face="Verdana" size="1">No</font>
                  </div>
                </td>
                <td valign="top" width="153">
                  <div>
                    <font face="Verdana" size="1">Yes</font>
                  </div>
                </td>
                <td valign="top" width="127">
                  <div>
                    <font face="Verdana" size="1">Yes</font>
                  </div>
                </td>
                <td valign="top" width="152">
                  <div>
                    <font face="Verdana" size="1">Yes</font>
                  </div>
                </td>
              </tr>
              <tr>
                <td valign="top" width="173">
                  <div>
                    <strong>
                      <font face="Verdana" size="1">Excel Documents</font>
                    </strong>
                  </div>
                </td>
                <td valign="top" width="134">
                  <div>
                    <font face="Verdana" size="1">No</font>
                  </div>
                </td>
                <td valign="top" width="153">
                  <div>
                    <font face="Verdana" size="1">Yes</font>
                  </div>
                </td>
                <td valign="top" width="127">
                  <div>
                    <font face="Verdana" size="1">No</font>
                  </div>
                </td>
                <td valign="top" width="152">
                  <div>
                    <font face="Verdana" size="1">Yes</font>
                  </div>
                </td>
              </tr>
              <tr>
                <td valign="top" width="173">
                  <div>
                    <strong>
                      <font face="Verdana" size="1">PDF Files</font>
                    </strong>
                  </div>
                </td>
                <td valign="top" width="134">
                  <div>
                    <font face="Verdana" size="1">No</font>
                  </div>
                </td>
                <td valign="top" width="153">
                  <div>
                    <font face="Verdana" size="1">Yes</font>
                  </div>
                </td>
                <td valign="top" width="127">
                  <div>
                    <font face="Verdana" size="1">No</font>
                  </div>
                </td>
                <td valign="top" width="152">
                  <div>
                    <font face="Verdana" size="1">Yes</font>
                  </div>
                </td>
              </tr>
              <tr>
                <td valign="top" width="173">
                  <div>
                    <strong>
                      <font face="Verdana" size="1">PowerPoints</font>
                    </strong>
                  </div>
                </td>
                <td valign="top" width="134">
                  <div>
                    <font face="Verdana" size="1">No</font>
                  </div>
                </td>
                <td valign="top" width="153">
                  <div>
                    <font face="Verdana" size="1">Yes</font>
                  </div>
                </td>
                <td valign="top" width="127">
                  <div>
                    <font face="Verdana" size="1">No</font>
                  </div>
                </td>
                <td valign="top" width="152">
                  <div>
                    <font face="Verdana" size="1">Yes</font>
                  </div>
                </td>
              </tr>
              <tr>
                <td valign="top" width="173">
                  <div>
                    <strong>
                      <font face="Verdana" size="1">RTF Files</font>
                    </strong>
                  </div>
                </td>
                <td valign="top" width="134">
                  <div>
                    <font face="Verdana" size="1">No</font>
                  </div>
                </td>
                <td valign="top" width="153">
                  <div>
                    <font face="Verdana" size="1">No</font>
                  </div>
                </td>
                <td valign="top" width="127">
                  <div>
                    <font face="Verdana" size="1">No</font>
                  </div>
                </td>
                <td valign="top" width="152">
                  <div>
                    <font face="Verdana" size="1">Yes</font>
                  </div>
                </td>
              </tr>
              <tr>
                <td valign="top" width="173">
                  <div>
                    <strong>
                      <font face="Verdana" size="1">Word Docs</font>
                    </strong>
                  </div>
                </td>
                <td valign="top" width="134">
                  <div>
                    <font face="Verdana" size="1">No</font>
                  </div>
                </td>
                <td valign="top" width="153">
                  <div>
                    <font face="Verdana" size="1">Yes</font>
                  </div>
                </td>
                <td valign="top" width="127">
                  <div>
                    <font face="Verdana" size="1">No</font>
                  </div>
                </td>
                <td valign="top" width="152">
                  <div>
                    <font face="Verdana" size="1">Yes</font>
                  </div>
                </td>
              </tr>
              <tr>
                <td valign="top" width="173">
                  <div>
                    <strong>
                      <font face="Verdana" size="1">Index File System</font>
                    </strong>
                  </div>
                </td>
                <td valign="top" width="134">
                  <div>
                    <font face="Verdana" size="1">No</font>
                  </div>
                </td>
                <td valign="top" width="153">
                  <div>
                    <font face="Verdana" size="1">Yes</font>
                  </div>
                </td>
                <td valign="top" width="127">
                  <div>
                    <font face="Verdana" size="1">No</font>
                  </div>
                </td>
                <td valign="top" width="152">
                  <div>
                    <font face="Verdana" size="1">No (Version 2.0)</font>
                  </div>
                </td>
              </tr>
              <tr>
                <td valign="top" width="173">
                  <div>
                    <strong>
                      <font face="Verdana" size="1">Index</font>
                    </strong>
                  </div>
                </td>
                <td valign="top" width="134">
                  <div>
                    <font face="Verdana" size="1">Table Driven Index</font>
                  </div>
                </td>
                <td valign="top" width="153">
                  <div>
                    <font face="Verdana" size="1">Lucene.Net (flat file)</font>
                  </div>
                </td>
                <td valign="top" width="127">
                  <div>
                    <font face="Verdana" size="1">Full-Text Indexing in SQL Server (flat file)</font>
                  </div>
                </td>
                <td valign="top" width="152">
                  <div>
                    <font face="Verdana" size="1">Full-Text Indexing in SQL Server (flat file)</font>
                  </div>
                </td>
              </tr>
              <tr>
                <td valign="top" width="173">
                  <div>
                    <strong>
                      <font face="Verdana" size="1">RSS</font>
                    </strong>
                  </div>
                </td>
                <td valign="top" width="134">
                  <div>
                    <font face="Verdana" size="1">No</font>
                  </div>
                </td>
                <td valign="top" width="153">
                  <div>
                    <font face="Verdana" size="1">No</font>
                  </div>
                </td>
                <td valign="top" width="127">
                  <div>
                    <font face="Verdana" size="1">No</font>
                  </div>
                </td>
                <td valign="top" width="152">
                  <div>
                    <font face="Verdana" size="1">Yes</font>
                  </div>
                </td>
              </tr>
              <tr>
                <td valign="top" width="173">
                  <div>
                    <strong>
                      <font face="Verdana" size="1">Enclosure Support (podcast/vodcast)</font>
                    </strong>
                  </div>
                </td>
                <td valign="top" width="134">
                  <div>
                    <font face="Verdana" size="1">No</font>
                  </div>
                </td>
                <td valign="top" width="153">
                  <div>
                    <font face="Verdana" size="1">No</font>
                  </div>
                </td>
                <td valign="top" width="127">
                  <div>
                    <font face="Verdana" size="1">No</font>
                  </div>
                </td>
                <td valign="top" width="152">
                  <div>
                    <font face="Verdana" size="1">Yes</font>
                  </div>
                </td>
              </tr>
              <tr>
                <td valign="top" width="173">
                  <div>
                    <strong>
                      <font face="Verdana" size="1">Feed Discovery</font>
                    </strong>
                  </div>
                </td>
                <td valign="top" width="134">
                  <div>
                    <font face="Verdana" size="1">No</font>
                  </div>
                </td>
                <td valign="top" width="153">
                  <div>
                    <font face="Verdana" size="1">No</font>
                  </div>
                </td>
                <td valign="top" width="127">
                  <div>
                    <font face="Verdana" size="1">Yes</font>
                  </div>
                </td>
                <td valign="top" width="152">
                  <div>
                    <font face="Verdana" size="1">Yes</font>
                  </div>
                </td>
              </tr>
              <tr>
                <td valign="top" width="173">
                  <div>
                    <strong>
                      <font face="Verdana" size="1">Smart Caching</font>
                    </strong>
                  </div>
                </td>
                <td valign="top" width="134">
                  <div>
                    <font face="Verdana" size="1">No</font>
                  </div>
                </td>
                <td valign="top" width="153">
                  <div>
                    <font face="Verdana" size="1">No</font>
                  </div>
                </td>
                <td valign="top" width="127">
                  <div>
                    <font face="Verdana" size="1">Yes</font>
                  </div>
                </td>
                <td valign="top" width="152">
                  <div>
                    <font face="Verdana" size="1">Yes</font>
                  </div>
                </td>
              </tr>
              <tr>
                <td valign="top" width="173">
                  <div>
                    <strong>
                      <font face="Verdana" size="1">Allow users to add feeds</font>
                    </strong>
                  </div>
                </td>
                <td valign="top" width="134">
                  <div>
                    <font face="Verdana" size="1">No</font>
                  </div>
                </td>
                <td valign="top" width="153">
                  <div>
                    <font face="Verdana" size="1">No</font>
                  </div>
                </td>
                <td valign="top" width="127">
                  <div>
                    <font face="Verdana" size="1">No</font>
                  </div>
                </td>
                <td valign="top" width="152">
                  <div>
                    <font face="Verdana" size="1">Yes</font>
                  </div>
                </td>
              </tr>
              <tr>
                <td valign="top" width="173">
                  <div>
                    <strong>
                      <font face="Verdana" size="1">Generates RSS Feed of latest items indexed</font>
                    </strong>
                  </div>
                </td>
                <td valign="top" width="134">
                  <div>
                    <font face="Verdana" size="1">No</font>
                  </div>
                </td>
                <td valign="top" width="153">
                  <div>
                    <font face="Verdana" size="1">No</font>
                  </div>
                </td>
                <td valign="top" width="127">
                  <div>
                    <font face="Verdana" size="1">Yes</font>
                  </div>
                </td>
                <td valign="top" width="152">
                  <div>
                    <font face="Verdana" size="1">Yes</font>
                  </div>
                </td>
              </tr>
              <tr>
                <td valign="top" width="173">
                  <div>
                    <strong>
                      <font face="Verdana" size="1">Blog and Feed Aggregator Pinging</font>
                    </strong>
                  </div>
                </td>
                <td valign="top" width="134">
                  <div>
                    <font face="Verdana" size="1">No</font>
                  </div>
                </td>
                <td valign="top" width="153">
                  <div>
                    <font face="Verdana" size="1">No</font>
                  </div>
                </td>
                <td valign="top" width="127">
                  <div>
                    <font face="Verdana" size="1">No</font>
                  </div>
                </td>
                <td valign="top" width="152">
                  <div>
                    <font face="Verdana" size="1">Yes</font>
                  </div>
                </td>
              </tr>
              <tr>
                <td valign="top" width="173">
                  <div>
                    <strong>
                      <font face="Verdana" size="1">Search Skin Object</font>
                    </strong>
                  </div>
                </td>
                <td valign="top" width="134">
                  <div>
                    <font face="Verdana" size="1">Yes</font>
                  </div>
                </td>
                <td valign="top" width="153">
                  <div>
                    <font face="Verdana" size="1">Yes</font>
                  </div>
                </td>
                <td valign="top" width="127">
                  <div>
                    <font face="Verdana" size="1">Yes</font>
                  </div>
                </td>
                <td valign="top" width="152">
                  <div>
                    <font face="Verdana" size="1">Yes</font>
                  </div>
                </td>
              </tr>
              <tr>
                <td valign="top" width="173">
                  <div>
                    <strong>
                      <font face="Verdana" size="1">Utilize DNN Search Skin</font>
                    </strong>
                  </div>
                </td>
                <td valign="top" width="134">
                  <div>
                    <font face="Verdana" size="1">Yes</font>
                  </div>
                </td>
                <td valign="top" width="153">
                  <div>
                    <font face="Verdana" size="1">No</font>
                  </div>
                </td>
                <td valign="top" width="127">
                  <div>
                    <font face="Verdana" size="1">Yes</font>
                  </div>
                </td>
                <td valign="top" width="152">
                  <div>
                    <font face="Verdana" size="1">Yes</font>
                  </div>
                </td>
              </tr>
              <tr>
                <td valign="top" width="173">
                  <div>
                    <strong>
                      <font face="Verdana" size="1">Modify search box and image</font>
                    </strong>
                  </div>
                </td>
                <td valign="top" width="134">
                  <div>
                    <font face="Verdana" size="1">No</font>
                  </div>
                </td>
                <td valign="top" width="153">
                  <div>
                    <font face="Verdana" size="1">Yes</font>
                  </div>
                </td>
                <td valign="top" width="127">
                  <div>
                    <font face="Verdana" size="1">Yes</font>
                  </div>
                </td>
                <td valign="top" width="152">
                  <div>
                    <font face="Verdana" size="1">Yes</font>
                  </div>
                </td>
              </tr>
              <tr>
                <td valign="top" width="173">
                  <div>
                    <strong>
                      <font face="Verdana" size="1">Use Image or Text for Search button</font>
                    </strong>
                  </div>
                </td>
                <td valign="top" width="134">
                  <div>
                    <font face="Verdana" size="1">No</font>
                  </div>
                </td>
                <td valign="top" width="153">
                  <div>
                    <font face="Verdana" size="1">Yes</font>
                  </div>
                </td>
                <td valign="top" width="127">
                  <div>
                    <font face="Verdana" size="1">Yes</font>
                  </div>
                </td>
                <td valign="top" width="152">
                  <div>
                    <font face="Verdana" size="1">Yes</font>
                  </div>
                </td>
              </tr>
              <tr>
                <td valign="top" width="173">
                  <div>
                    <strong>
                      <font face="Verdana" size="1">Portal(site) or Web search</font>
                    </strong>
                  </div>
                </td>
                <td valign="top" width="134">
                  <div>
                    <font face="Verdana" size="1">No</font>
                  </div>
                </td>
                <td valign="top" width="153">
                  <div>
                    <font face="Verdana" size="1">No</font>
                  </div>
                </td>
                <td valign="top" width="127">
                  <div>
                    <font face="Verdana" size="1">Yes</font>
                  </div>
                </td>
                <td valign="top" width="152">
                  <div>
                    <font face="Verdana" size="1">Yes</font>
                  </div>
                </td>
              </tr>
              <tr>
                <td valign="top" width="173">
                  <div>
                    <strong>
                      <font face="Verdana" size="1">Keyword Highlighting</font>
                    </strong>
                  </div>
                </td>
                <td valign="top" width="134">
                  <div>
                    <font face="Verdana" size="1">No</font>
                  </div>
                </td>
                <td valign="top" width="153">
                  <div>
                    <font face="Verdana" size="1">Yes</font>
                  </div>
                </td>
                <td valign="top" width="127">
                  <div>
                    <font face="Verdana" size="1">Yes</font>
                  </div>
                </td>
                <td valign="top" width="152">
                  <div>
                    <font face="Verdana" size="1">Yes</font>
                  </div>
                </td>
              </tr>
              <tr>
                <td valign="top" width="173">
                  <div>
                    <strong>
                      <font face="Verdana" size="1">Cached Version</font>
                    </strong>
                  </div>
                </td>
                <td valign="top" width="134">
                  <div>
                    <font face="Verdana" size="1">No</font>
                  </div>
                </td>
                <td valign="top" width="153">
                  <div>
                    <font face="Verdana" size="1">No</font>
                  </div>
                </td>
                <td valign="top" width="127">
                  <div>
                    <font face="Verdana" size="1">No</font>
                  </div>
                </td>
                <td valign="top" width="152">
                  <div>
                    <font face="Verdana" size="1">No (Version 2.0)</font>
                  </div>
                </td>
              </tr>
              <tr>
                <td valign="top" width="173">
                  <div>
                    <strong>
                      <font face="Verdana" size="1">User Saved Searches</font>
                    </strong>
                  </div>
                </td>
                <td valign="top" width="134">
                  <div>
                    <font face="Verdana" size="1">No</font>
                  </div>
                </td>
                <td valign="top" width="153">
                  <div>
                    <font face="Verdana" size="1">No</font>
                  </div>
                </td>
                <td valign="top" width="127">
                  <div>
                    <font face="Verdana" size="1">No</font>
                  </div>
                </td>
                <td valign="top" width="152">
                  <div>
                    <font face="Verdana" size="1">No (Version 2.0)</font>
                  </div>
                </td>
              </tr>
              <tr>
                <td valign="top" width="173">
                  <div>
                    <strong>
                      <font face="Verdana" size="1">Social Bookmarking</font>
                    </strong>
                  </div>
                </td>
                <td valign="top" width="134">
                  <div>
                    <font face="Verdana" size="1">No</font>
                  </div>
                </td>
                <td valign="top" width="153">
                  <div>
                    <font face="Verdana" size="1">No</font>
                  </div>
                </td>
                <td valign="top" width="127">
                  <div>
                    <font face="Verdana" size="1">No</font>
                  </div>
                </td>
                <td valign="top" width="152">
                  <div>
                    <font face="Verdana" size="1">Yes</font>
                  </div>
                </td>
              </tr>
              <tr>
                <td valign="top" width="173">
                  <div>
                    <strong>
                      <font face="Verdana" size="1">Price</font>
                    </strong>
                  </div>
                </td>
                <td valign="top" width="134">
                  <div>
                    <font face="Verdana" size="1">Free</font>
                  </div>
                </td>
                <td valign="top" width="153">
                  <div>
                    <font face="Verdana" size="1">$49</font>
                  </div>
                </td>
                <td valign="top" width="127">
                  <div>
                    <font face="Verdana" size="1">Free</font>
                  </div>
                </td>
                <td valign="top" width="152">
                  <div>
                    <font face="Verdana" size="1">$199</font>
                  </div>
                </td>
              </tr>
            </tbody>
          </table>
        </div>
        <div style="MARGIN: 0in 0in 0pt">
          <p>
            <strong>
              <font face="Verdana" size="3">Performance and Relevancy:</font>
            </strong>
          </p>
          <p>
            <font face="Verdana">What about performance and the relevancy of the results? I setup
a test site with 5 total pages of content and installed/configured DNN Search, Open-SearchEngine,
and Venexus Search Engine on separate pages. I also installed PageGenerated module
from </font>
            <a href="http://www.ventrian.com/" _fcksavedurl="http://www.ventrian.com/">
              <font face="Verdana">Ventrian
Systems</font>
            </a>
            <font face="Verdana"> to show page execution time. I am not
sure of any accuracy for a benchmark here, but the following results are the best
of 5 consecutive query executions against each search engine using "truman" without
quotes as the search query. In reality, there are only 2 relevant pages associated
with "truman". There is a link from the home page of the site with the text "Truman
Doctrine" as a contextual link that directs the user to the full document about
the "Truman Doctrine". Ideally, we should expect the document that is all about "truman"
and his doctrine to be listed first:</font>
          </p>
        </div>
        <div style="MARGIN: 0in 0in 0pt">
          <p>
            <strong>
              <font face="Verdana" size="2">DNN Search:</font>
            </strong>
          </p>
          <p>
            <a href="http://search.venexus.com/search001.jpg" _fcksavedurl="http://search.venexus.com/search001.jpg">
              <font face="Verdana">
                <img alt="" src="http://search.venexus.com/search001.jpg" _fcksavedurl="http://search.venexus.com/search001.jpg" />
              </font>
            </a>
          </p>
        </div>
        <div style="MARGIN: 0in 0in 0pt">
          <p>
            <font face="Verdana">
              <strong>Best Execution Time</strong>: <font color="#ff0000"><strong>0.218531
seconds</strong></font></font>
          </p>
          <p>
            <font face="Verdana">
              <strong>Results Returned:</strong> 1</font>
          </p>
          <p>
            <strong>
              <font face="Verdana">Notes:</font>
            </strong>
          </p>
          <p>
            <font face="Verdana">The only result returned is not the most relevant page on the
site. In fact, the "Truman Doctrine" page is not even listed as a result. This must
be because the word "truman" does not actually appear in the content of the text/html
module on the Truman Doctrine page. There is "HARRY S. TRUMAN'S ADDRESS" in the content,
but DNN Search can only return results where the query is spelled EXACTLY like something
in the content.</font>
          </p>
        </div>
        <div style="MARGIN: 0in 0in 0pt">
          <strong>
            <font face="Verdana" size="2">Open-SearchEngine:</font>
          </strong>
        </div>
        <div style="MARGIN: 0in 0in 0pt">
          <font face="Verdana">
            <img alt="" src="http://search.venexus.com/search002.jpg" _fcksavedurl="http://search.venexus.com/search002.jpg" /> </font>
        </div>
        <div style="MARGIN: 0in 0in 0pt">
          <p>
            <font face="Verdana">
              <strong>Best page Execution:</strong>
              <font color="#ff0000">
                <strong>0.1093155
seconds</strong>
              </font>
            </font>
          </p>
          <p>
            <font face="Verdana">
              <strong>Returned Results:</strong> 10</font>
          </p>
          <p>
            <strong>
              <font face="Verdana">Notes:</font>
            </strong>
          </p>
          <p>
            <font face="Verdana">Notice the poor description and the fact that the true most relevant
document (the "Truman Doctrine" page) is the 5th result. Also, there are several results
of pages that have no information about "Truman" except for the link in the SolPartMenu.
While it is good that the search engine is able to crawl the solpartmenu, it is unfortunate
that the search engine weights pages that just have links in a menu higher than the
most relevant result. The best page execution time was half that of DNN Search, which
is excellent.</font>
          </p>
        </div>
        <div style="MARGIN: 0in 0in 0pt">
          <p>
            <strong>
              <font face="Verdana" size="2">Venexus Search Engine:</font>
            </strong>
          </p>
          <p>
            <strong>
              <font face="Verdana">
                <img alt="" src="http://search.venexus.com/search003.jpg" _fcksavedurl="http://search.venexus.com/search003.jpg" />
              </font>
            </strong>
          </p>
        </div>
        <div style="MARGIN: 0in 0in 0pt">
          <p>
            <font face="Verdana">
              <strong>Best Page Execution:</strong>
              <strong>
                <font color="#ff0000">0.046866
seconds</font>
              </strong>
            </font>
          </p>
        </div>
        <div style="MARGIN: 0in 0in 0pt">
          <p>
            <font face="Verdana">
              <strong>Results Returned:</strong> 3</font>
          </p>
          <p>
            <strong>
              <font face="Verdana">Notes:</font>
            </strong>
          </p>
          <p>
            <font face="Verdana">Notice the first result is the actual document (the "Truman Doctrine"
page)  we are looking for. Also, page execution time is less than half the time
than Open-SearchEngine and a quarter of the time compared to DNN Search.</font>
          </p>
          <p>
            <strong>
              <font face="Verdana" size="3">Conclusion:</font>
            </strong>
          </p>
          <p>
            <font face="Verdana">The implementation provided by the DNN core team for the built-in
DotNetNuke Search suits the needs for many smaller sites. However, larger sites will
quickly run into issues with memory consumption due to the way the module indexing
is performed. The search architecture is limited and greatly impacts the performance
of the site and the search results due to the indexing process and the direct SQL
table queries that holds the words and index. Most likely this is due to the
requirement for database independence, rather than poor design. If your site
is small, needs database independence, and search results are helpful, but not
really an important piece of your site, then this may be the best tool for
you.</font>
          </p>
          <p>
            <font face="Verdana">If you are looking for a traditional search engine crawler, with
good scalability, and you require database server independence, and decent search
results, Open-SearchEngine may be the solution for you. It is by far better than the
core DNN Search, but relies on tradional crawling and indexing methods. Conservation
of bandwidth and server resources are debatable since there is no method of smart
caching available. The ability for this engine to index direcories of files is an
important feature than neither DNN Search, nor VSE offer. However, the lack of RSS
aggregation as the new medium for crawling and gathering new and updated data is a
huge issue that will lead to stagnant search results without frequently reindexing
all URLs.  As evident from the simple search results analysis performed, most
results are not really relevant, but it is better than not returning any true relevant
results like DNN Search due to spelling differences. It just means your users will
have plenty to click on before finding the correct document they are looking for.
While execution time is certainly better than DNN Search, it is still significantly
slower than the Venexus Search Engine execution time.</font>
          </p>
          <p>
            <font face="Verdana">The Venexus Search Engine offers 2 versions, the standard (free
version), and the Pro (not free version).  The standard version still offers
many of the features smaller sites require, including quick and relevant results,
but does not include some of the nicer features of the Pro version like PDF and MS
Office document indexing and </font>
            <a href="http://dnnblog.venexus.com/The+Power+Of+Blog+And+Feed+Aggregator+Pinging+For+SEO+Benefits.aspx" _fcksavedurl="http://dnnblog.venexus.com/The+Power+Of+Blog+And+Feed+Aggregator+Pinging+For+SEO+Benefits.aspx">
              <font face="Verdana">blog
and feed aggregation pinging service</font>
            </a>
            <font face="Verdana">. Where VSE really
shines is in its ability to provide and aggregate RSS feeds for inclusion in its index.
The smart caching and user interactive crawling using AJAX distributes the load on
the server and bandwidth. The major advantage and disadvantage of VSE is MS SQL Server
Full-Text indexing. The disadvantage is that VSE is NOT database independant and requires
Full-Text indexing enabled versions of MS SQL Server in order to operate. The advantage
is that it uses Full-Text Indexing from MS SQL Server for more relevant and faster
search results. We know VSE is scalable because it has been tested against a database
of over 2 million indexed pages. The simple search results analysis shows that it
is 4 times faster than DNN Search and 2 times faster than Open-SearchEngine. The actual
search results speak for themselves, delivering the most relevant result as #1 and
contextual links from the home page as supplemental results.</font>
          </p>
          <p>
            <font face="Verdana">Picking the right search engine application is important for
your website and now you should be armed with the knowledge of how each one operates,
the differences in features between them, and the overall performance and relevancy
of the search results.</font>
          </p>
          <p>
            <font face="Verdana">I hope this answers everyone's questions concerning the differences
between the 3 DotNetNuke Search Engines. Feel free to comment with questions or suggestion
on how this post can be improved. If you know of a feature or difference that I missed,
please let me know. </font>
            <font face="Verdana">While this post is quite lengthy,
I plan on keeping it updated as a resource for those who would like to keep track
of the differences between each DNN search engine. </font>
          </p>
        </div>
        <img width="0" height="0" src="http://dnnblog.venexus.com/aggbug.ashx?id=01d9d0ef-6e5d-40d2-b364-000e47ca30e3" />
      </body>
      <title>Differences Between DNN Search Engines</title>
      <guid isPermaLink="false">http://dnnblog.venexus.com/PermaLink,guid,01d9d0ef-6e5d-40d2-b364-000e47ca30e3.aspx</guid>
      <link>http://dnnblog.venexus.com/Differences+Between+DNN+Search+Engines.aspx</link>
      <pubDate>Sun, 08 Apr 2007 23:37:38 GMT</pubDate>
      <description>&lt;div style="MARGIN: 0in 0in 0pt"&gt;
&lt;p&gt;
&lt;font face=Verdana&gt;&amp;nbsp;I have been asked to compare the differences between our
search engine and Open-SearchEngine. I agree this is an important question that needs
to be answered, so I decided to put together a comparison between the core DNN Search,
Open-SearchEngine, and Venexus Search Engine. While my opinion of which is the best,
is defintely biased toward our own product, I have tried to provide an in-depth look
at the basics of how each search engine works, a feature matrix, and simple search
results analysis. Without further ado, read on...&lt;/font&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;strong&gt;&lt;font face=Verdana size=3&gt;DotNetNuke Search
(core project)&lt;/font&gt;&lt;/strong&gt;
&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face=Verdana&gt;DNN Search is&amp;nbsp;part of the
DNN core that is&amp;nbsp;installed and configured out of the box.&lt;/font&gt;
&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face=Verdana&gt;&lt;/font&gt;&amp;nbsp;
&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face=Verdana&gt;DotNetNuke Search consists of&amp;nbsp;4
main pieces:&lt;/font&gt;
&lt;/div&gt;
&lt;ul style="MARGIN-TOP: 0in" type=disc&gt;
&lt;li style="MARGIN: 0in 0in 0pt"&gt;
&lt;font face=Verdana&gt;&lt;em&gt;Scheduled Task&lt;/em&gt; &lt;/font&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div style="MARGIN: 0in 0in 0pt 0.5in"&gt;
&lt;p&gt;
&lt;font face=Verdana&gt;The scheduled task initiates the process of indexing the modules,
at the scheduled time interval. An iteration of all modules that support iSearchable
is performed. During this process, text that is extracted from the module is cleaned,
parsed, and added to search word and search items tables.&lt;/font&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;ul style="MARGIN-TOP: 0in" type=disc&gt;
&lt;li style="MARGIN: 0in 0in 0pt"&gt;
&lt;em&gt;&lt;font face=Verdana&gt;Search Admin&lt;/font&gt;&lt;/em&gt; 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;font face=Verdana&gt;&lt;em&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/em&gt;The
search admin is for setting the maximum word length, minimum word length, option to
include&amp;nbsp;common words, and&amp;nbsp;the option to include numbers.&amp;nbsp;&lt;/font&gt;
&lt;/p&gt;
&lt;ul style="MARGIN-TOP: 0in" type=disc&gt;
&lt;li style="MARGIN: 0in 0in 0pt"&gt;
&lt;em&gt;&lt;font face=Verdana&gt;Search Input Module&lt;/font&gt;&lt;/em&gt; 
&lt;/li&gt;
&lt;/ul&gt;
&lt;div style="MARGIN: 0in 0in 0pt 0.5in"&gt;
&lt;p&gt;
&lt;font face=Verdana&gt;A module or skin object can be used to provide the form for the
search query. In module settings, you can use the default button, or an image. You
do not have the option to change this image within the module, nor change the text.
Styles can be used to make some look and feel changes, but it is limited. When a search
is performed, the user is redirected to the Search Results page.&lt;/font&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;ul style="MARGIN-TOP: 0in" type=disc&gt;
&lt;li style="MARGIN: 0in 0in 0pt"&gt;
&lt;font face=Verdana&gt;&lt;em&gt;Search Results Module&lt;/em&gt; &lt;/font&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;font face=Verdana&gt;This module provides the
search results. In the settings, you can set the maximum search results, results per
page, maximum title length, maximum description length, and the option to show description.
Results are limited to the exact word queried.&lt;/font&gt;
&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face=Verdana&gt;&lt;/font&gt;&amp;nbsp;
&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face=Verdana&gt;Oddly enough, there no longer
appears to be a DNN forum for search, or a blog dedicated to it on the &lt;/font&gt;&lt;a href="http://www.dotnetnuke.com/" _fcksavedurl="http://www.dotnetnuke.com"&gt;&lt;font face=Verdana&gt;DotNetNuke
website&lt;/font&gt;&lt;/a&gt;&lt;font face=Verdana&gt;. However, a good place to find out more about
the core module is &lt;/font&gt;&lt;a href="http://www.innovatasites.com/tabid/1341/Default.aspx" _fcksavedurl="http://www.innovatasites.com/tabid/1341/Default.aspx"&gt;&lt;font face=Verdana&gt;ecktwo’s
site&lt;/font&gt;&lt;/a&gt;&lt;font face=Verdana&gt;. There is a lot of information about how all the
pieces work together, as well as the bugs/issues of DotNetNuke Search. There is also
a tutorial and report on &lt;/font&gt;&lt;a href="http://www.innovatasites.com/tabid/2497/Default.aspx" _fcksavedurl="http://www.innovatasites.com/tabid/2497/Default.aspx"&gt;&lt;font face=Verdana&gt;DNN
Search for DNN 4&lt;/font&gt;&lt;/a&gt;&lt;font face=Verdana&gt;.&lt;/font&gt;
&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face=Verdana&gt;&lt;/font&gt;&amp;nbsp;
&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;strong&gt;&lt;font face=Verdana size=3&gt;Open-SearchEngine&lt;/font&gt;&lt;/strong&gt;
&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;a href="http://www.opendnn.com/Products/OpenSearchEngine/Features/tabid/69/Default.aspx" _fcksavedurl="http://www.opendnn.com/Products/OpenSearchEngine/Features/tabid/69/Default.aspx"&gt;&lt;font face=Verdana&gt;Open-SearchEngine&lt;/font&gt;&lt;/a&gt;&lt;font face=Verdana&gt; is
developed by &lt;/font&gt;&lt;a href="http://www.xepient.com/" _fcksavedurl="http://www.xepient.com/"&gt;&lt;font face=Verdana&gt;Xepient
Solutions&lt;/font&gt;&lt;/a&gt;&lt;font face=Verdana&gt;. The package is capable of indexing HTML content
as well as PDF’s and several Office documents. Open-SearchEngine uses &lt;/font&gt;&lt;a href="http://incubator.apache.org/lucene.net/" _fcksavedurl="http://incubator.apache.org/lucene.net/"&gt;&lt;font face=Verdana&gt;Lucene.Net&lt;/font&gt;&lt;/a&gt;&lt;font face=Verdana&gt;,
a port of the &lt;/font&gt;&lt;a href="http://lucene.apache.org/java/docs/index.html" _fcksavedurl="http://lucene.apache.org/java/docs/index.html"&gt;&lt;font face=Verdana&gt;Java
Lucene Search Engine&lt;/font&gt;&lt;/a&gt;&lt;font face=Verdana&gt;, for indexing and querying.&lt;/font&gt;
&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face=Verdana&gt;&lt;/font&gt;&amp;nbsp;
&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face=Verdana&gt;Open-Search Engine consists of
4 main pieces:&lt;/font&gt;
&lt;/div&gt;
&lt;ul style="MARGIN-TOP: 0in" type=disc&gt;
&lt;li style="MARGIN: 0in 0in 0pt"&gt;
&lt;em&gt;&lt;font face=Verdana&gt;Scheduled Task &lt;/font&gt;&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div style="MARGIN: 0in 0in 0pt 0.5in"&gt;
&lt;p&gt;
&lt;font face=Verdana&gt;Test The scheduled task initiates the process of spidering, at
the scheduled time interval. Lucene.Net handles indexing of the data.&lt;/font&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;ul style="MARGIN-TOP: 0in" type=disc&gt;
&lt;li style="MARGIN: 0in 0in 0pt"&gt;
&lt;font face=Verdana&gt;&lt;em&gt;Search Engine Admin Module&lt;/em&gt; &lt;/font&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div style="MARGIN: 0in 0in 0pt 0.5in"&gt;
&lt;p&gt;
&lt;font face=Verdana&gt;This module provides an interface for configuring the search engine
to your preferences. You can add a starting URL and by default, spidering is enabled.
This allows you to offer multiple sites in your search engine. However, unless disabled,
each time you run the process to update the index, all URLs are re-crawled. With many
URLs on the site(s) you index, it&amp;nbsp;can lead to a very long time between the completion
of crawling and indexing runs.&lt;/font&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;ul style="MARGIN-TOP: 0in" type=disc&gt;
&lt;li style="MARGIN: 0in 0in 0pt"&gt;
&lt;font face=Verdana&gt;&lt;em&gt;Search Input Module&lt;/em&gt;&amp;nbsp; &lt;/font&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div style="MARGIN: 0in 0in 0pt 0.5in"&gt;
&lt;p&gt;
&lt;font face=Verdana&gt;A module or skin object can be used to provide the form for the
search query. In module settings, you can use the default button, or an image. You
also have the option to add “Search” as text or image before the textbox.&lt;/font&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;ul style="MARGIN-TOP: 0in" type=disc&gt;
&lt;li style="MARGIN: 0in 0in 0pt"&gt;
&lt;font face=Verdana&gt;&lt;em&gt;Search Results Module&lt;/em&gt; &lt;/font&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;font face=Verdana&gt;This module provides the
search results. In the settings, you can set which sites are part of the results scope,
maximum results per page, maximum title length, title link target, and the option
to hide description.&lt;/font&gt;
&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face=Verdana&gt;&lt;/font&gt;&amp;nbsp;
&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face=Verdana&gt;&lt;/font&gt;&amp;nbsp;
&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face=Verdana&gt;&lt;/font&gt;&amp;nbsp;
&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;strong&gt;&lt;font face=Verdana size=3&gt;Venexus Search
Engine&lt;/font&gt;&lt;/strong&gt;
&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face=Verdana&gt;The &lt;/font&gt;&lt;a href="http://www.venexus.com/Services/DotNetNuke/DotNetNukeSearch/tabid/1280/Default.aspx" _fcksavedurl="http://www.venexus.com/Services/DotNetNuke/DotNetNukeSearch/tabid/1280/Default.aspx"&gt;&lt;font face=Verdana&gt;Venexus
Search Engine&lt;/font&gt;&lt;/a&gt;&lt;font face=Verdana&gt; is quite different than the other 2 solutions.
The package includes 2 modules&amp;nbsp;and requires MS SQL Server Full-Text Indexing.
Like traditional crawlers, VSE can crawl and index a variety of data, but where the
real difference is seen is in it's ability to also “crawl” and index RSS feeds. This
is the key to keeping the search results up-to-date, while conserving server and bandwidth
resources. Rather than recrawling and reindexing all content, "smart caching" is used
to determine when RSS feeds need to be aggregated, and when non-syndicated content
needs to be recrawled on the site.&lt;/font&gt;
&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face=Verdana&gt;&amp;nbsp;&amp;nbsp;&lt;/font&gt;
&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face=Verdana&gt;The Venexus Search Engine consists
of 2 main pieces:&lt;/font&gt;
&lt;/div&gt;
&lt;ul style="MARGIN-TOP: 0in" type=disc&gt;
&lt;li style="MARGIN: 0in 0in 0pt"&gt;
&lt;font face=Verdana&gt;Seamus Module &lt;/font&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div style="MARGIN: 0in 0in 0pt 0.5in"&gt;
&lt;p&gt;
&lt;font face=Verdana&gt;The Seamus module is the “search engine aggregation module utilizing
syndication”.&amp;nbsp;On the first load of the module, Seamus iterates through the core
DNN modules on all portals that support the iPortable interface. Seamus uses this
“initial dump” to gather other URLs for the site. You also have the ability to add
feeds to Seamus, not only for your site, but any external site. With “global crawler”
enabled, any external site URLs that are discovered during crawling, are added to
the queue as well. &amp;nbsp;Using AJAX, Seamus performs crawling of 3 feeds and 3 URLs
with each load. If the user remains on the page, using AJAX, Seamus will continue
to crawl and save the data to the table for indexing. &amp;nbsp;This decreases the load
on the server by spreading the crawling and indexing across several user sessions,
rather than a single scheduled task.&lt;/font&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;ul style="MARGIN-TOP: 0in" type=disc&gt;
&lt;li style="MARGIN: 0in 0in 0pt"&gt;
&lt;font face=Verdana&gt;Search Module &lt;/font&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div style="MARGIN: 0in 0in 0pt 0.5in"&gt;
&lt;p&gt;
&lt;font face=Verdana&gt;The Search module provides the search box, as well as the results.
Using Microsoft SQL Server’s feature of Full-Text Indexing, data is indexed from the
crawling and storing provided by Seamus. Within the settings you can specify the search
button text or use&amp;nbsp;you own custom image for the button,&amp;nbsp;set&amp;nbsp;maximum
search length, set search bx size, maximum results, results per page, set maximum
length of display URL,&amp;nbsp;specify remote connection string (database other than
DNN), specify portal specific search, or allow user to select between site or all
of the web search.&lt;/font&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;p style="MARGIN: 0in 0in 0pt"&gt;
&lt;strong&gt;&lt;font face=Verdana size=3&gt;Feature Comparison Matrix:&lt;/font&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;p style="MARGIN: 0in 0in 0pt"&gt;
&lt;font face=Verdana&gt;Below you will find a list of features for DNN Search, Open-SearchEngine,
Venexus Search Engine Standard, and Venexus Search Engine PRO.&lt;/font&gt;
&lt;/p&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;
&lt;table cellspacing=0 cellpadding=0 border=1&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td valign=top width=173&gt;
&lt;div align=center&gt;&lt;strong&gt;&lt;font face=Verdana size=1&gt;Feature&lt;/font&gt;&lt;/strong&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=134&gt;
&lt;div align=center&gt;&lt;strong&gt;&lt;font face=Verdana size=1&gt;DNN Search&lt;/font&gt;&lt;/strong&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=153&gt;
&lt;div align=center&gt;&lt;strong&gt;&lt;font face=Verdana size=1&gt;Open-SearchEngine&lt;/font&gt;&lt;/strong&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=127&gt;
&lt;div align=center&gt;&lt;strong&gt;&lt;font face=Verdana size=1&gt;Venexus Search Engine Standard&lt;/font&gt;&lt;/strong&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=152&gt;
&lt;div align=center&gt;&lt;strong&gt;&lt;font face=Verdana size=1&gt;Venexus Search Engine PRO&lt;/font&gt;&lt;/strong&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign=top width=173&gt;
&lt;div&gt;&lt;strong&gt;&lt;font face=Verdana size=1&gt;Crawling Method&lt;/font&gt;&lt;/strong&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=134&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;Module Indexer (Must implement iSearchable)&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=153&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;Custom URL crawler/spider (Must have starting URL for
each site, with crawling enabled)&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=127&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;Custom Crawler&lt;/font&gt;
&lt;/div&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;(Uses iPortable interface, traditional URL crawler/spider,
and RSS aggregation)&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=152&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;Custom Crawler&lt;/font&gt;
&lt;/div&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;(Uses iPortable interface, traditional URL crawler/spider,
and RSS aggregation)&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign=top width=173&gt;
&lt;div&gt;&lt;strong&gt;&lt;font face=Verdana size=1&gt;Crawl and Index Start&lt;/font&gt;&lt;/strong&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=134&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;Requires DNN Scheduled Task&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=153&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;Requires DNN Scheduled Task&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=127&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;User Interactive (AJAX in aggregation module)&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=152&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;User Interactive (AJAX in aggregation module)&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign=top width=173&gt;
&lt;div&gt;&lt;strong&gt;&lt;font face=Verdana size=1&gt;Global Crawler&lt;/font&gt;&lt;/strong&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=134&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;No&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=153&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;No (Requires input of each domain)&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=127&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;No&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=152&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;Yes&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign=top width=173&gt;
&lt;div&gt;&lt;strong&gt;&lt;font face=Verdana size=1&gt;DNN User Impersonation&lt;/font&gt;&lt;/strong&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=134&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;No&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=153&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;Yes&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=127&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;No&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=152&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;No (Version 2.0)&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign=top width=173&gt;
&lt;div&gt;&lt;strong&gt;&lt;font face=Verdana size=1&gt;Windows Authentication&lt;/font&gt;&lt;/strong&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=134&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;No&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=153&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;Yes&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=127&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;No&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=152&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;No (Version 2.0)&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign=top width=173&gt;
&lt;div&gt;&lt;strong&gt;&lt;font face=Verdana size=1&gt;Exclude List&lt;/font&gt;&lt;/strong&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=134&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;No&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=153&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;Yes&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=127&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;Yes&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=152&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;Yes&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign=top width=173&gt;
&lt;div&gt;&lt;strong&gt;&lt;font face=Verdana size=1&gt;Excel Documents&lt;/font&gt;&lt;/strong&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=134&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;No&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=153&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;Yes&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=127&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;No&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=152&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;Yes&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign=top width=173&gt;
&lt;div&gt;&lt;strong&gt;&lt;font face=Verdana size=1&gt;PDF Files&lt;/font&gt;&lt;/strong&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=134&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;No&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=153&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;Yes&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=127&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;No&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=152&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;Yes&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign=top width=173&gt;
&lt;div&gt;&lt;strong&gt;&lt;font face=Verdana size=1&gt;PowerPoints&lt;/font&gt;&lt;/strong&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=134&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;No&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=153&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;Yes&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=127&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;No&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=152&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;Yes&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign=top width=173&gt;
&lt;div&gt;&lt;strong&gt;&lt;font face=Verdana size=1&gt;RTF Files&lt;/font&gt;&lt;/strong&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=134&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;No&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=153&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;No&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=127&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;No&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=152&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;Yes&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign=top width=173&gt;
&lt;div&gt;&lt;strong&gt;&lt;font face=Verdana size=1&gt;Word Docs&lt;/font&gt;&lt;/strong&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=134&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;No&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=153&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;Yes&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=127&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;No&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=152&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;Yes&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign=top width=173&gt;
&lt;div&gt;&lt;strong&gt;&lt;font face=Verdana size=1&gt;Index File System&lt;/font&gt;&lt;/strong&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=134&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;No&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=153&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;Yes&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=127&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;No&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=152&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;No (Version 2.0)&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign=top width=173&gt;
&lt;div&gt;&lt;strong&gt;&lt;font face=Verdana size=1&gt;Index&lt;/font&gt;&lt;/strong&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=134&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;Table Driven Index&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=153&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;Lucene.Net (flat file)&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=127&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;Full-Text Indexing in SQL Server (flat file)&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=152&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;Full-Text Indexing in SQL Server (flat file)&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign=top width=173&gt;
&lt;div&gt;&lt;strong&gt;&lt;font face=Verdana size=1&gt;RSS&lt;/font&gt;&lt;/strong&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=134&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;No&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=153&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;No&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=127&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;No&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=152&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;Yes&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign=top width=173&gt;
&lt;div&gt;&lt;strong&gt;&lt;font face=Verdana size=1&gt;Enclosure Support (podcast/vodcast)&lt;/font&gt;&lt;/strong&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=134&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;No&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=153&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;No&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=127&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;No&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=152&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;Yes&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign=top width=173&gt;
&lt;div&gt;&lt;strong&gt;&lt;font face=Verdana size=1&gt;Feed Discovery&lt;/font&gt;&lt;/strong&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=134&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;No&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=153&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;No&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=127&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;Yes&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=152&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;Yes&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign=top width=173&gt;
&lt;div&gt;&lt;strong&gt;&lt;font face=Verdana size=1&gt;Smart Caching&lt;/font&gt;&lt;/strong&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=134&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;No&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=153&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;No&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=127&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;Yes&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=152&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;Yes&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign=top width=173&gt;
&lt;div&gt;&lt;strong&gt;&lt;font face=Verdana size=1&gt;Allow users to add feeds&lt;/font&gt;&lt;/strong&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=134&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;No&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=153&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;No&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=127&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;No&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=152&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;Yes&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign=top width=173&gt;
&lt;div&gt;&lt;strong&gt;&lt;font face=Verdana size=1&gt;Generates RSS Feed of latest items indexed&lt;/font&gt;&lt;/strong&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=134&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;No&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=153&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;No&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=127&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;Yes&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=152&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;Yes&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign=top width=173&gt;
&lt;div&gt;&lt;strong&gt;&lt;font face=Verdana size=1&gt;Blog and Feed Aggregator Pinging&lt;/font&gt;&lt;/strong&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=134&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;No&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=153&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;No&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=127&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;No&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=152&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;Yes&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign=top width=173&gt;
&lt;div&gt;&lt;strong&gt;&lt;font face=Verdana size=1&gt;Search Skin Object&lt;/font&gt;&lt;/strong&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=134&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;Yes&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=153&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;Yes&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=127&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;Yes&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=152&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;Yes&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign=top width=173&gt;
&lt;div&gt;&lt;strong&gt;&lt;font face=Verdana size=1&gt;Utilize DNN Search Skin&lt;/font&gt;&lt;/strong&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=134&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;Yes&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=153&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;No&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=127&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;Yes&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=152&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;Yes&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign=top width=173&gt;
&lt;div&gt;&lt;strong&gt;&lt;font face=Verdana size=1&gt;Modify search box and image&lt;/font&gt;&lt;/strong&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=134&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;No&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=153&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;Yes&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=127&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;Yes&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=152&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;Yes&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign=top width=173&gt;
&lt;div&gt;&lt;strong&gt;&lt;font face=Verdana size=1&gt;Use Image or Text for Search button&lt;/font&gt;&lt;/strong&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=134&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;No&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=153&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;Yes&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=127&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;Yes&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=152&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;Yes&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign=top width=173&gt;
&lt;div&gt;&lt;strong&gt;&lt;font face=Verdana size=1&gt;Portal(site) or Web search&lt;/font&gt;&lt;/strong&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=134&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;No&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=153&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;No&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=127&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;Yes&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=152&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;Yes&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign=top width=173&gt;
&lt;div&gt;&lt;strong&gt;&lt;font face=Verdana size=1&gt;Keyword Highlighting&lt;/font&gt;&lt;/strong&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=134&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;No&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=153&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;Yes&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=127&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;Yes&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=152&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;Yes&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign=top width=173&gt;
&lt;div&gt;&lt;strong&gt;&lt;font face=Verdana size=1&gt;Cached Version&lt;/font&gt;&lt;/strong&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=134&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;No&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=153&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;No&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=127&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;No&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=152&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;No (Version 2.0)&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign=top width=173&gt;
&lt;div&gt;&lt;strong&gt;&lt;font face=Verdana size=1&gt;User Saved Searches&lt;/font&gt;&lt;/strong&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=134&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;No&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=153&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;No&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=127&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;No&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=152&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;No (Version 2.0)&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign=top width=173&gt;
&lt;div&gt;&lt;strong&gt;&lt;font face=Verdana size=1&gt;Social Bookmarking&lt;/font&gt;&lt;/strong&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=134&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;No&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=153&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;No&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=127&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;No&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=152&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;Yes&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign=top width=173&gt;
&lt;div&gt;&lt;strong&gt;&lt;font face=Verdana size=1&gt;Price&lt;/font&gt;&lt;/strong&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=134&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;Free&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=153&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;$49&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=127&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;Free&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=top width=152&gt;
&lt;div&gt;&lt;font face=Verdana size=1&gt;$199&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;
&lt;p&gt;
&lt;strong&gt;&lt;font face=Verdana size=3&gt;Performance and Relevancy:&lt;/font&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font face=Verdana&gt;What about performance and the relevancy of the results? I setup
a test site with 5 total pages of content and installed/configured DNN Search, Open-SearchEngine,
and Venexus Search Engine on separate pages. I also installed PageGenerated module
from &lt;/font&gt;&lt;a href="http://www.ventrian.com/" _fcksavedurl="http://www.ventrian.com/"&gt;&lt;font face=Verdana&gt;Ventrian
Systems&lt;/font&gt;&lt;/a&gt;&lt;font face=Verdana&gt;&amp;nbsp;to show page execution time. I am not sure
of any accuracy for a benchmark here, but the following results are the&amp;nbsp;best
of 5 consecutive query executions against each search engine using "truman" without
quotes as the search query. In reality, there are only 2 relevant pages associated
with "truman". There is a link from the home page of the site&amp;nbsp;with the text "Truman
Doctrine" as&amp;nbsp;a contextual link that directs the user to the full document about
the "Truman Doctrine". Ideally, we should expect the document that is all about "truman"
and his doctrine to be listed first:&lt;/font&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;
&lt;p&gt;
&lt;strong&gt;&lt;font face=Verdana size=2&gt;DNN Search:&lt;/font&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://search.venexus.com/search001.jpg" _fcksavedurl="http://search.venexus.com/search001.jpg"&gt;&lt;font face=Verdana&gt;&lt;img alt="" src="http://search.venexus.com/search001.jpg" _fcksavedurl="http://search.venexus.com/search001.jpg"&gt;&lt;/font&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;
&lt;p&gt;
&lt;font face=Verdana&gt;&lt;strong&gt;Best Execution Time&lt;/strong&gt;: &lt;font color=#ff0000&gt;&lt;strong&gt;0.218531
seconds&lt;/strong&gt;&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font face=Verdana&gt;&lt;strong&gt;Results Returned:&lt;/strong&gt; 1&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;&lt;font face=Verdana&gt;Notes:&lt;/font&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font face=Verdana&gt;The only result returned is not the most relevant page on the site.
In fact, the "Truman Doctrine" page is not even listed as a result. This must be because
the word "truman" does not actually appear in the content of the text/html module
on the Truman Doctrine page. There is "HARRY S. TRUMAN'S ADDRESS" in the content,
but DNN Search can only return results where the query is spelled EXACTLY like something
in the content.&lt;/font&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;strong&gt;&lt;font face=Verdana size=2&gt;Open-SearchEngine:&lt;/font&gt;&lt;/strong&gt;
&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;font face=Verdana&gt;&lt;img alt="" src="http://search.venexus.com/search002.jpg" _fcksavedurl="http://search.venexus.com/search002.jpg"&gt;&amp;nbsp;&lt;/font&gt;
&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;
&lt;p&gt;
&lt;font face=Verdana&gt;&lt;strong&gt;Best page Execution:&lt;/strong&gt; &lt;font color=#ff0000&gt;&lt;strong&gt;0.1093155
seconds&lt;/strong&gt;&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font face=Verdana&gt;&lt;strong&gt;Returned Results:&lt;/strong&gt; 10&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;&lt;font face=Verdana&gt;Notes:&lt;/font&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font face=Verdana&gt;Notice the poor description and the fact that the true most relevant
document (the "Truman Doctrine" page) is the 5th result. Also, there are several results
of pages that have no information about "Truman" except for the link&amp;nbsp;in the SolPartMenu.
While it is good that the search engine is able to crawl the solpartmenu, it is unfortunate
that the search engine weights pages that just have links in a menu higher than the
most relevant result. The best page execution time was half that of DNN Search, which
is excellent.&lt;/font&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;
&lt;p&gt;
&lt;strong&gt;&lt;font face=Verdana size=2&gt;Venexus Search Engine:&lt;/font&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;&lt;font face=Verdana&gt;&lt;img alt="" src="http://search.venexus.com/search003.jpg" _fcksavedurl="http://search.venexus.com/search003.jpg"&gt;&lt;/font&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;
&lt;p&gt;
&lt;font face=Verdana&gt;&lt;strong&gt;Best Page Execution:&lt;/strong&gt; &lt;strong&gt;&lt;font color=#ff0000&gt;0.046866
seconds&lt;/font&gt;&lt;/strong&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;
&lt;p&gt;
&lt;font face=Verdana&gt;&lt;strong&gt;Results Returned:&lt;/strong&gt; 3&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;&lt;font face=Verdana&gt;Notes:&lt;/font&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font face=Verdana&gt;Notice the first result is the actual document (the "Truman Doctrine"
page) &amp;nbsp;we are looking for. Also, page execution time is less than half the time
than Open-SearchEngine and a quarter of the time compared to DNN Search.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;&lt;font face=Verdana size=3&gt;Conclusion:&lt;/font&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font face=Verdana&gt;The implementation provided by the DNN core team for the built-in
DotNetNuke Search suits the needs for many smaller sites. However, larger sites will
quickly run into issues with memory consumption due to the way the module indexing
is performed. The search architecture is limited and greatly impacts the performance
of the site and the search results due to the indexing process and the direct SQL
table queries that holds the words and index.&amp;nbsp;Most likely this is due to the
requirement for database independence, rather than poor design.&amp;nbsp;If your site
is small, needs database independence, and&amp;nbsp;search results are helpful, but not
really an important piece of your site, then this may be the&amp;nbsp;best tool&amp;nbsp;for
you.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font face=Verdana&gt;If you are looking for a traditional search engine crawler, with
good scalability, and you require database server independence, and&amp;nbsp;decent&amp;nbsp;search
results, Open-SearchEngine may be the solution for you. It is by far better than the
core DNN Search, but relies on tradional crawling and indexing methods. Conservation
of bandwidth and server resources&amp;nbsp;are debatable since there is no method of smart
caching available. The ability for this engine to index direcories of files is an
important feature than neither DNN Search, nor VSE offer. However, the lack of RSS
aggregation as the new medium for crawling and gathering new and updated data is a
huge issue that will lead to stagnant search results without frequently reindexing
all URLs.&amp;nbsp; As evident from the simple search results analysis performed, most
results are not really relevant, but it is better than not returning any true relevant
results like DNN Search due to spelling differences. It just means your users will
have plenty to click on before finding the correct document they are looking for.
While execution time is certainly better than DNN Search, it is still significantly
slower than the Venexus Search Engine execution time.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font face=Verdana&gt;The Venexus Search Engine offers 2 versions, the standard (free
version), and the Pro (not free&amp;nbsp;version).&amp;nbsp; The standard version still offers
many of the features smaller sites require, including quick&amp;nbsp;and relevant results,
but does not include some of the nicer features of the Pro version like PDF and MS
Office document indexing and &lt;/font&gt;&lt;a href="http://dnnblog.venexus.com/The+Power+Of+Blog+And+Feed+Aggregator+Pinging+For+SEO+Benefits.aspx" _fcksavedurl="http://dnnblog.venexus.com/The+Power+Of+Blog+And+Feed+Aggregator+Pinging+For+SEO+Benefits.aspx"&gt;&lt;font face=Verdana&gt;blog
and feed aggregation pinging service&lt;/font&gt;&lt;/a&gt;&lt;font face=Verdana&gt;. Where VSE really
shines is in its ability to provide and aggregate RSS feeds for inclusion in its index.
The smart caching and user interactive crawling using AJAX distributes the load on
the server and bandwidth. The major advantage and disadvantage of VSE is MS SQL Server
Full-Text indexing. The disadvantage is that VSE is NOT database independant and&amp;nbsp;requires
Full-Text indexing enabled versions of MS SQL Server in order to operate. The advantage
is that it uses Full-Text Indexing from MS SQL Server for more relevant and faster
search results. We know VSE is scalable because it has been tested against a database
of over 2 million indexed pages. The simple search results analysis shows that it
is 4 times faster than DNN Search and 2 times faster than Open-SearchEngine. The actual
search results speak for themselves, delivering the most relevant result as #1 and
contextual links from the home page as supplemental results.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font face=Verdana&gt;Picking the right search engine application is important for your
website and now you should be armed with the knowledge of how each one operates, the
differences in features between them, and the overall performance and relevancy of
the search results.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font face=Verdana&gt;I hope this answers everyone's questions concerning the differences
between the 3 DotNetNuke Search Engines. Feel free to comment with questions or suggestion
on how this post can be improved. If you know of a feature or difference that I missed,
please let me know. &lt;/font&gt;&lt;font face=Verdana&gt;While this post is quite lengthy, I
plan on keeping it updated&amp;nbsp;as a resource for those who would like to keep track
of the differences between each DNN search engine. &lt;/font&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;img width="0" height="0" src="http://dnnblog.venexus.com/aggbug.ashx?id=01d9d0ef-6e5d-40d2-b364-000e47ca30e3" /&gt;</description>
      <category>DotNetNuke General;DotNetNuke Modules;DotNetNuke Search;MS SQL Server;Search Engine Optimization</category>
    </item>
    <item>
      <trackback:ping>http://dnnblog.venexus.com/Trackback.aspx?guid=4da6fbc2-bdd4-4f65-bd91-e0eff928289c</trackback:ping>
      <pingback:server>http://dnnblog.venexus.com/pingback.aspx</pingback:server>
      <pingback:target>http://dnnblog.venexus.com/PermaLink,guid,4da6fbc2-bdd4-4f65-bd91-e0eff928289c.aspx</pingback:target>
      <dc:creator>Jeff Smith</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <font face="Times New Roman" color="#000080" size="3">There is nothing better to start
off the day than having a client running into a 100% CPU utilization issue on their
production SQL Server. Every few minutes, the server would spike up and hang there
for a variable amount of time (15 seconds to several minutes). You can only imagine
the flakiness of a website with SQL Server choking to death. There was nothing of
value to point any fingers as to the culprit of this issue in
the event logs for DNN (Admin &gt; LogViewer)...none that we saw through a brief spot
checking and filtering of event types (this was incredibly slow and seeing timeouts
so we abandoned all hope of using DNN Admin/Host tools to find the problem).  And,
there was not an alarming number of events actually logged in EventLog table. However,
we have seen issues with performance that are usually resolved by clearing the Log
Viewer. We have seen cases where clients who have high traffic/usage sites, or a broken/problematic
module on all pages, have 5 and 6 figure rows of data for EventLog table,
especially if all the default settings are used for the DNN Log Viewer settings. We
have seen timeout issues just trying to clear the event log when they get that large
("Delete EventLog" as the sql statement does the trick quickly from SSMS). So,
we went ahead and cleared it, but the issue persisted.</font>
        </p>
        <p>
          <font face="Times New Roman" color="#000080" size="3">For those who have not explored
much in SQL Server Management Studio (not in SSMS Express), there is now a Database
Engine Tuning  Advisor and SQL Server Profiler (under Tools &gt; SQL Server Profiler).
Running the SSP, we performed a trace and caught the offending SQL causing all of
the havoc. Just a note...we have run DETA to find recommendations from trace files
for several large DNN databases and apply the recommendations (it usually creates
new indexes for tables that have 6 and 7 figure rows, helping greatly with performance
on databases). But in this case, we just started and stopped the trace in SSP
before and after a huge and hanging spike. Going through the rows looking for CPU
hits, we found the following 2 villians of resources:</font>
        </p>
        <font face="Times New Roman" size="2">
          <font size="2">
            <p>
GetSchedule @Server
</p>
          </font>
          <font color="#808080" size="2">=</font>
          <font color="#ff0000" size="2">'SERVERNAME'
</font>
          <font size="2">
            <p>
GetScheduleNextTask @Server
</p>
          </font>
          <font color="#808080" size="2">=</font>
          <font color="#ff0000" size="2">'SERVERNAME'<br /><font face="Times New Roman" color="#000000"><br /><font color="#000080" size="3">Running these statements showed the huge spike on command,
pegging the server hard. Looking in the stored proc it hits Schedule and ScheduleHistory. </font></font></font>
          <font color="#ff0000" size="2">
            <font face="Times New Roman" color="#000000">
              <font color="#0000ff" size="2">
                <p>
ALTER
</p>
              </font>
              <font size="2">
              </font>
              <font color="#0000ff" size="2">PROCEDURE</font>
              <font size="2"> [dbo]</font>
              <font color="#808080" size="2">.</font>
              <font size="2">[GetSchedule]
<p>
@Server 
</p></font>
              <font color="#0000ff" size="2">varchar</font>
              <font color="#808080" size="2">(</font>
              <font size="2">150</font>
              <font color="#808080" size="2">)
</font>
              <font color="#0000ff" size="2">
                <p>
AS
</p>
                <p>
SELECT
</p>
              </font>
              <font size="2"> S</font>
              <font color="#808080" size="2">.</font>
              <font size="2">ScheduleID</font>
              <font color="#808080" size="2">,</font>
              <font size="2"> S</font>
              <font color="#808080" size="2">.</font>
              <font size="2">TypeFullName</font>
              <font color="#808080" size="2">,</font>
              <font size="2"> S</font>
              <font color="#808080" size="2">.</font>
              <font size="2">TimeLapse</font>
              <font color="#808080" size="2">,</font>
              <font size="2"> S</font>
              <font color="#808080" size="2">.</font>
              <font size="2">TimeLapseMeasurement</font>
              <font color="#808080" size="2">,</font>
              <font size="2"> S</font>
              <font color="#808080" size="2">.</font>
              <font size="2">RetryTimeLapse</font>
              <font color="#808080" size="2">,</font>
              <font size="2"> S</font>
              <font color="#808080" size="2">.</font>
              <font size="2">RetryTimeLapseMeasurement</font>
              <font color="#808080" size="2">,</font>
              <font size="2"> S</font>
              <font color="#808080" size="2">.</font>
              <font size="2">ObjectDependencies</font>
              <font color="#808080" size="2">,</font>
              <font size="2"> S</font>
              <font color="#808080" size="2">.</font>
              <font size="2">AttachToEvent</font>
              <font color="#808080" size="2">,</font>
              <font size="2"> S</font>
              <font color="#808080" size="2">.</font>
              <font size="2">RetainHistoryNum</font>
              <font color="#808080" size="2">,</font>
              <font size="2"> S</font>
              <font color="#808080" size="2">.</font>
              <font size="2">CatchUpEnabled</font>
              <font color="#808080" size="2">,</font>
              <font size="2"> S</font>
              <font color="#808080" size="2">.</font>
              <font size="2">Enabled</font>
              <font color="#808080" size="2">,</font>
              <font size="2"> SH</font>
              <font color="#808080" size="2">.</font>
              <font size="2">NextStart</font>
              <font color="#808080" size="2">,</font>
              <font size="2"> S</font>
              <font color="#808080" size="2">.</font>
              <font size="2">Servers
</font>
              <font color="#0000ff" size="2">
                <p>
FROM
</p>
              </font>
              <font size="2"> Schedule S
</font>
              <font color="#808080" size="2">
                <p>
                  <font color="#ff0000">
                    <strong>LEFT</strong>
                  </font>
                </p>
              </font>
              <font color="#ff0000">
                <strong>
                  <font size="2">
                  </font>
                  <font size="2">JOIN</font>
                  <font size="2"> ScheduleHistory
SH
</font>
                </strong>
              </font>
              <font size="2">
                <p>
                  <font color="#ff0000">
                    <strong>ON</strong>
                  </font>
                </p>
              </font>
              <font color="#ff0000">
                <strong>
                  <font size="2"> S</font>
                  <font size="2">.</font>
                  <font size="2">ScheduleID </font>
                  <font size="2">=</font>
                  <font size="2"> SH</font>
                  <font size="2">.</font>
                  <font size="2">ScheduleID
</font>
                </strong>
              </font>
              <font size="2">
                <p>
                  <font color="#ff0000">
                    <strong>WHERE</strong>
                  </font>
                </p>
              </font>
              <font color="#ff0000">
                <strong>
                  <font size="2">
                  </font>
                  <font size="2">(</font>
                  <font size="2">SH</font>
                  <font size="2">.</font>
                  <font size="2">ScheduleHistoryID </font>
                  <font size="2">=</font>
                  <font size="2">
                  </font>
                  <font size="2">(</font>
                  <font size="2">SELECT</font>
                  <font size="2">
                  </font>
                  <font size="2">TOP</font>
                  <font size="2"> 1
S1</font>
                  <font size="2">.</font>
                  <font size="2">ScheduleHistoryID </font>
                  <font size="2">FROM</font>
                  <font size="2"> ScheduleHistory
S1 </font>
                  <font size="2">WHERE</font>
                  <font size="2"> S1</font>
                  <font size="2">.</font>
                  <font size="2">ScheduleID </font>
                  <font size="2">=</font>
                  <font size="2"> S</font>
                  <font size="2">.</font>
                  <font size="2">ScheduleID </font>
                  <font size="2">ORDER</font>
                  <font size="2">
                  </font>
                  <font size="2">BY</font>
                  <font size="2"> S1</font>
                  <font size="2">.</font>
                  <font size="2">NextStart </font>
                  <font size="2">DESC</font>
                </strong>
              </font>
              <font size="2">
                <font color="#ff0000">
                  <strong>)</strong>
                </font>
                <p>
                  <font color="#ff0000">
                    <strong>OR</strong>
                  </font>
                </p>
              </font>
              <font color="#ff0000">
                <strong>
                  <font size="2"> SH</font>
                  <font size="2">.</font>
                  <font size="2">ScheduleHistoryID </font>
                  <font size="2">IS</font>
                  <font size="2">
                  </font>
                </strong>
              </font>
              <font color="#808080" size="2">
                <font color="#ff0000">
                  <strong>NULL)</strong>
                </font>
                <p>
AND
</p>
              </font>
              <font size="2">
              </font>
              <font color="#808080" size="2">(</font>
              <font size="2">@Server </font>
              <font color="#808080" size="2">IS</font>
              <font size="2">
              </font>
              <font color="#808080" size="2">NULL</font>
              <font size="2">
              </font>
              <font color="#808080" size="2">or</font>
              <font size="2"> S</font>
              <font color="#808080" size="2">.</font>
              <font size="2">Servers </font>
              <font color="#808080" size="2">LIKE</font>
              <font size="2">
              </font>
              <font color="#ff0000" size="2">',%'</font>
              <font size="2">
              </font>
              <font color="#808080" size="2">+</font>
              <font size="2"> @Server </font>
              <font color="#808080" size="2">+</font>
              <font size="2">
              </font>
              <font color="#ff0000" size="2">'%,'</font>
              <font size="2">
              </font>
              <font color="#808080" size="2">or</font>
              <font size="2"> S</font>
              <font color="#808080" size="2">.</font>
              <font size="2">Servers </font>
              <font color="#808080" size="2">IS</font>
              <font size="2">
              </font>
              <font color="#808080" size="2">NULL)
</font>
              <font color="#0000ff" size="2">
                <p>
GROUP
</p>
              </font>
              <font size="2">
              </font>
              <font color="#0000ff" size="2">BY</font>
              <font size="2"> S</font>
              <font color="#808080" size="2">.</font>
              <font size="2">ScheduleID</font>
              <font color="#808080" size="2">,</font>
              <font size="2"> S</font>
              <font color="#808080" size="2">.</font>
              <font size="2">TypeFullName</font>
              <font color="#808080" size="2">,</font>
              <font size="2"> S</font>
              <font color="#808080" size="2">.</font>
              <font size="2">TimeLapse</font>
              <font color="#808080" size="2">,</font>
              <font size="2"> S</font>
              <font color="#808080" size="2">.</font>
              <font size="2">TimeLapseMeasurement</font>
              <font color="#808080" size="2">,</font>
              <font size="2"> S</font>
              <font color="#808080" size="2">.</font>
              <font size="2">RetryTimeLapse</font>
              <font color="#808080" size="2">,</font>
              <font size="2"> S</font>
              <font color="#808080" size="2">.</font>
              <font size="2">RetryTimeLapseMeasurement</font>
              <font color="#808080" size="2">,</font>
              <font size="2"> S</font>
              <font color="#808080" size="2">.</font>
              <font size="2">ObjectDependencies</font>
              <font color="#808080" size="2">,</font>
              <font size="2"> S</font>
              <font color="#808080" size="2">.</font>
              <font size="2">AttachToEvent</font>
              <font color="#808080" size="2">,</font>
              <font size="2"> S</font>
              <font color="#808080" size="2">.</font>
              <font size="2">RetainHistoryNum</font>
              <font color="#808080" size="2">,</font>
              <font size="2"> S</font>
              <font color="#808080" size="2">.</font>
              <font size="2">CatchUpEnabled</font>
              <font color="#808080" size="2">,</font>
              <font size="2"> S</font>
              <font color="#808080" size="2">.</font>
              <font size="2">Enabled</font>
              <font color="#808080" size="2">,</font>
              <font size="2"> SH</font>
              <font color="#808080" size="2">.</font>
              <font size="2">NextStart</font>
              <font color="#808080" size="2">,</font>
              <font size="2"> S</font>
              <font color="#808080" size="2">.</font>
              <font size="2">Servers</font>
            </font>
          </font>
          <p>
            <font face="Times New Roman" color="#000080" size="3">In ScheduleHistory we found
a little over 6 thousand rows. You can use the following to check your db:</font>
          </p>
          <p>
            <font color="#ff0000" size="2">
              <font face="Times New Roman" color="#000000">
                <font color="#0000ff" size="2">select</font>
                <font size="2">
                </font>
                <font color="#ff00ff" size="2">count</font>
                <font color="#808080" size="2">(*)</font>
                <font size="2">
                </font>
                <font color="#0000ff" size="2">from</font>
                <font size="2"> schedulehistory<br /><br /><font color="#000080" size="3">6000+ does not seem like that many rows to be causing
that much of a peak, but regardless we deleted them all getting desperate at this
point:</font></font>
              </font>
            </font>
          </p>
          <font color="#0000ff" size="2">
            <p>
delete
</p>
          </font>
          <font size="2"> schedulehistory</font>
          <br />
          <br />
          <font color="#000080" size="3">Executing the 2 sprocs again for the schedule,
and cpu barely gets over 3% utilization. The site is again fast and responsive and
I was able to get in and check settings without getting timeouts. So, as an interim
fix I lowered the defaults in  DotNetNuke.Services.Scheduling.PurgeScheduleHistory under
Host &gt; Schedule.</font>
          <p>
            <img src="http://dnnblog.venexus.com/content/binary/purge-schedule-history-settings1.JPG" border="0" />
          </p>
        </font>
        <p>
          <font color="#000080">I am concerned about why 6000 rows of data would be taking such
a hit on cpu resources. However, that it more records than I believe should be there,
so lowering the defaults will help. Nothing in the DNN stored procedure for GetSchedule
really stands out at me as being problematic, nor at first glance do I see anything
that could be changed that may help, but I will ponder on this some more in my copious
spare time.</font>
        </p>
        <p>
          <font color="#000080">So, if you are having trouble with SQL Server performance and
DNN, check and make sure you keep your EventLog and ScheduleHistory purged. </font>
        </p>
        <p>
          <font color="#000080">If you need help, be sure to checkout our </font>
          <a href="http://www.venexus.com/Services/DotNetNuke/DotNetNukeSupport/tabid/912/Default.aspx">DNN
Support Packages</a>.
</p>
        <img width="0" height="0" src="http://dnnblog.venexus.com/aggbug.ashx?id=4da6fbc2-bdd4-4f65-bd91-e0eff928289c" />
      </body>
      <title>DNN and SQL Server Performance Issue?</title>
      <guid isPermaLink="false">http://dnnblog.venexus.com/PermaLink,guid,4da6fbc2-bdd4-4f65-bd91-e0eff928289c.aspx</guid>
      <link>http://dnnblog.venexus.com/DNN+And+SQL+Server+Performance+Issue.aspx</link>
      <pubDate>Thu, 22 Mar 2007 18:12:18 GMT</pubDate>
      <description>&lt;p&gt;
&lt;font face="Times New Roman" color=#000080 size=3&gt;There is nothing better to start
off the day than having a client running into a 100% CPU utilization issue on their
production SQL Server. Every few minutes, the server would spike up and hang there
for a variable amount of time (15 seconds to several minutes). You can only imagine
the flakiness of a website with SQL Server choking to death. There was nothing of
value to point&amp;nbsp;any fingers&amp;nbsp;as to&amp;nbsp;the culprit of this&amp;nbsp;issue&amp;nbsp;in
the event logs for DNN (Admin &amp;gt; LogViewer)...none that we saw through a brief spot
checking and filtering of event types (this was incredibly slow and seeing timeouts
so we abandoned all hope of using DNN Admin/Host tools&amp;nbsp;to find the problem).&amp;nbsp;&amp;nbsp;And,
there was not an alarming number of events actually logged in EventLog table. However,
we have seen issues with performance that are usually resolved by clearing the Log
Viewer. We have seen cases where clients who have high traffic/usage sites, or a broken/problematic
module on all pages, have&amp;nbsp;5&amp;nbsp;and 6 figure rows of data for EventLog table,
especially if all the default settings are used for the DNN Log Viewer settings. We
have seen timeout issues just trying to clear the event log when they get that large
("Delete EventLog" as the sql statement&amp;nbsp;does the trick quickly from SSMS). So,
we went ahead and cleared it, but the issue persisted.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font face="Times New Roman" color=#000080 size=3&gt;For those who have not explored
much in SQL Server Management Studio (not in SSMS Express), there is now a Database
Engine Tuning&amp;nbsp; Advisor and SQL Server Profiler (under Tools &amp;gt; SQL Server Profiler).
Running the SSP, we performed a trace and caught the offending SQL causing all of
the havoc. Just a note...we have run DETA to find recommendations from trace files
for several large DNN databases and apply the recommendations (it usually creates
new indexes for tables that have 6 and 7 figure rows, helping greatly with performance
on databases). But&amp;nbsp;in this case, we just started and stopped the trace in SSP
before and after a huge and hanging spike. Going through the rows looking for CPU
hits, we found the following 2 villians of resources:&lt;/font&gt;
&lt;/p&gt;
&lt;font face="Times New Roman" size=2&gt;&lt;font size=2&gt; 
&lt;p&gt;
GetSchedule @Server
&lt;/font&gt;&lt;font color=#808080 size=2&gt;=&lt;/font&gt;&lt;font color=#ff0000 size=2&gt;'SERVERNAME'&gt;
&lt;/font&gt;&lt;font size=2&gt; 
&lt;p&gt;
GetScheduleNextTask @Server
&lt;/font&gt;&lt;font color=#808080 size=2&gt;=&lt;/font&gt;&lt;font color=#ff0000 size=2&gt;'SERVERNAME'&lt;br&gt;
&lt;font face="Times New Roman" color=#000000&gt;
&lt;br&gt;
&lt;font color=#000080 size=3&gt;Running these statements showed the huge spike on command,
pegging the server hard.&amp;nbsp;Looking in the stored proc it hits Schedule and ScheduleHistory. &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&gt;
&lt;font color=#ff0000 size=2&gt;&lt;font face="Times New Roman" color=#000000&gt;&lt;font color=#0000ff size=2&gt; 
&lt;p&gt;
ALTER
&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#0000ff size=2&gt;PROCEDURE&lt;/font&gt;&lt;font size=2&gt; [dbo]&lt;/font&gt;&lt;font color=#808080 size=2&gt;.&lt;/font&gt;&lt;font size=2&gt;[GetSchedule]&gt;
&lt;p&gt;
@Server 
&lt;/font&gt;&lt;font color=#0000ff size=2&gt;varchar&lt;/font&gt;&lt;font color=#808080 size=2&gt;(&lt;/font&gt;&lt;font size=2&gt;150&lt;/font&gt;&lt;font color=#808080 size=2&gt;)&gt;
&lt;/font&gt;&lt;font color=#0000ff size=2&gt; 
&lt;p&gt;
AS
&lt;/p&gt;
&lt;p&gt;
SELECT
&lt;/font&gt;&lt;font size=2&gt; S&lt;/font&gt;&lt;font color=#808080 size=2&gt;.&lt;/font&gt;&lt;font size=2&gt;ScheduleID&lt;/font&gt;&lt;font color=#808080 size=2&gt;,&lt;/font&gt;&lt;font size=2&gt; S&lt;/font&gt;&lt;font color=#808080 size=2&gt;.&lt;/font&gt;&lt;font size=2&gt;TypeFullName&lt;/font&gt;&lt;font color=#808080 size=2&gt;,&lt;/font&gt;&lt;font size=2&gt; S&lt;/font&gt;&lt;font color=#808080 size=2&gt;.&lt;/font&gt;&lt;font size=2&gt;TimeLapse&lt;/font&gt;&lt;font color=#808080 size=2&gt;,&lt;/font&gt;&lt;font size=2&gt; S&lt;/font&gt;&lt;font color=#808080 size=2&gt;.&lt;/font&gt;&lt;font size=2&gt;TimeLapseMeasurement&lt;/font&gt;&lt;font color=#808080 size=2&gt;,&lt;/font&gt;&lt;font size=2&gt; S&lt;/font&gt;&lt;font color=#808080 size=2&gt;.&lt;/font&gt;&lt;font size=2&gt;RetryTimeLapse&lt;/font&gt;&lt;font color=#808080 size=2&gt;,&lt;/font&gt;&lt;font size=2&gt; S&lt;/font&gt;&lt;font color=#808080 size=2&gt;.&lt;/font&gt;&lt;font size=2&gt;RetryTimeLapseMeasurement&lt;/font&gt;&lt;font color=#808080 size=2&gt;,&lt;/font&gt;&lt;font size=2&gt; S&lt;/font&gt;&lt;font color=#808080 size=2&gt;.&lt;/font&gt;&lt;font size=2&gt;ObjectDependencies&lt;/font&gt;&lt;font color=#808080 size=2&gt;,&lt;/font&gt;&lt;font size=2&gt; S&lt;/font&gt;&lt;font color=#808080 size=2&gt;.&lt;/font&gt;&lt;font size=2&gt;AttachToEvent&lt;/font&gt;&lt;font color=#808080 size=2&gt;,&lt;/font&gt;&lt;font size=2&gt; S&lt;/font&gt;&lt;font color=#808080 size=2&gt;.&lt;/font&gt;&lt;font size=2&gt;RetainHistoryNum&lt;/font&gt;&lt;font color=#808080 size=2&gt;,&lt;/font&gt;&lt;font size=2&gt; S&lt;/font&gt;&lt;font color=#808080 size=2&gt;.&lt;/font&gt;&lt;font size=2&gt;CatchUpEnabled&lt;/font&gt;&lt;font color=#808080 size=2&gt;,&lt;/font&gt;&lt;font size=2&gt; S&lt;/font&gt;&lt;font color=#808080 size=2&gt;.&lt;/font&gt;&lt;font size=2&gt;Enabled&lt;/font&gt;&lt;font color=#808080 size=2&gt;,&lt;/font&gt;&lt;font size=2&gt; SH&lt;/font&gt;&lt;font color=#808080 size=2&gt;.&lt;/font&gt;&lt;font size=2&gt;NextStart&lt;/font&gt;&lt;font color=#808080 size=2&gt;,&lt;/font&gt;&lt;font size=2&gt; S&lt;/font&gt;&lt;font color=#808080 size=2&gt;.&lt;/font&gt;&lt;font size=2&gt;Servers&gt;
&lt;/font&gt;&lt;font color=#0000ff size=2&gt; 
&lt;p&gt;
FROM
&lt;/font&gt;&lt;font size=2&gt; Schedule S&gt;
&lt;/font&gt;&lt;font color=#808080 size=2&gt; 
&lt;p&gt;
&lt;font color=#ff0000&gt;&lt;strong&gt;LEFT&lt;/strong&gt;&lt;/font&gt;
&lt;/font&gt;&lt;font color=#ff0000&gt;&lt;strong&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font size=2&gt;JOIN&lt;/font&gt;&lt;font size=2&gt; ScheduleHistory
SH&gt;
&lt;/font&gt;&lt;/strong&gt;&lt;/font&gt;&lt;font size=2&gt; 
&lt;p&gt;
&lt;font color=#ff0000&gt;&lt;strong&gt;ON&lt;/strong&gt;&lt;/font&gt;
&lt;/font&gt;&lt;font color=#ff0000&gt;&lt;strong&gt;&lt;font size=2&gt; S&lt;/font&gt;&lt;font size=2&gt;.&lt;/font&gt;&lt;font size=2&gt;ScheduleID &lt;/font&gt;&lt;font size=2&gt;=&lt;/font&gt;&lt;font size=2&gt; SH&lt;/font&gt;&lt;font size=2&gt;.&lt;/font&gt;&lt;font size=2&gt;ScheduleID&gt;
&lt;/font&gt;&lt;/strong&gt;&lt;/font&gt;&lt;font size=2&gt; 
&lt;p&gt;
&lt;font color=#ff0000&gt;&lt;strong&gt;WHERE&lt;/strong&gt;&lt;/font&gt;
&lt;/font&gt;&lt;font color=#ff0000&gt;&lt;strong&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font size=2&gt;(&lt;/font&gt;&lt;font size=2&gt;SH&lt;/font&gt;&lt;font size=2&gt;.&lt;/font&gt;&lt;font size=2&gt;ScheduleHistoryID &lt;/font&gt;&lt;font size=2&gt;=&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font size=2&gt;(&lt;/font&gt;&lt;font size=2&gt;SELECT&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font size=2&gt;TOP&lt;/font&gt;&lt;font size=2&gt; 1
S1&lt;/font&gt;&lt;font size=2&gt;.&lt;/font&gt;&lt;font size=2&gt;ScheduleHistoryID &lt;/font&gt;&lt;font size=2&gt;FROM&lt;/font&gt;&lt;font size=2&gt; ScheduleHistory
S1 &lt;/font&gt;&lt;font size=2&gt;WHERE&lt;/font&gt;&lt;font size=2&gt; S1&lt;/font&gt;&lt;font size=2&gt;.&lt;/font&gt;&lt;font size=2&gt;ScheduleID &lt;/font&gt;&lt;font size=2&gt;=&lt;/font&gt;&lt;font size=2&gt; S&lt;/font&gt;&lt;font size=2&gt;.&lt;/font&gt;&lt;font size=2&gt;ScheduleID &lt;/font&gt;&lt;font size=2&gt;ORDER&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font size=2&gt;BY&lt;/font&gt;&lt;font size=2&gt; S1&lt;/font&gt;&lt;font size=2&gt;.&lt;/font&gt;&lt;font size=2&gt;NextStart &lt;/font&gt;&lt;font size=2&gt;DESC&lt;/font&gt;&lt;/strong&gt;&lt;/font&gt;&lt;font size=2&gt;&lt;font color=#ff0000&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;&gt;
&lt;p&gt;
&lt;font color=#ff0000&gt;&lt;strong&gt;OR&lt;/strong&gt;&lt;/font&gt;
&lt;/font&gt;&lt;font color=#ff0000&gt;&lt;strong&gt;&lt;font size=2&gt; SH&lt;/font&gt;&lt;font size=2&gt;.&lt;/font&gt;&lt;font size=2&gt;ScheduleHistoryID &lt;/font&gt;&lt;font size=2&gt;IS&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;/strong&gt;&lt;/font&gt;&lt;font color=#808080 size=2&gt;&lt;font color=#ff0000&gt;&lt;strong&gt;NULL)&lt;/strong&gt;&lt;/font&gt;&gt;
&lt;p&gt;
AND
&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#808080 size=2&gt;(&lt;/font&gt;&lt;font size=2&gt;@Server &lt;/font&gt;&lt;font color=#808080 size=2&gt;IS&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#808080 size=2&gt;NULL&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#808080 size=2&gt;or&lt;/font&gt;&lt;font size=2&gt; S&lt;/font&gt;&lt;font color=#808080 size=2&gt;.&lt;/font&gt;&lt;font size=2&gt;Servers &lt;/font&gt;&lt;font color=#808080 size=2&gt;LIKE&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;',%'&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#808080 size=2&gt;+&lt;/font&gt;&lt;font size=2&gt; @Server &lt;/font&gt;&lt;font color=#808080 size=2&gt;+&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;'%,'&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#808080 size=2&gt;or&lt;/font&gt;&lt;font size=2&gt; S&lt;/font&gt;&lt;font color=#808080 size=2&gt;.&lt;/font&gt;&lt;font size=2&gt;Servers &lt;/font&gt;&lt;font color=#808080 size=2&gt;IS&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#808080 size=2&gt;NULL)&gt;
&lt;/font&gt;&lt;font color=#0000ff size=2&gt; 
&lt;p&gt;
GROUP
&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#0000ff size=2&gt;BY&lt;/font&gt;&lt;font size=2&gt; S&lt;/font&gt;&lt;font color=#808080 size=2&gt;.&lt;/font&gt;&lt;font size=2&gt;ScheduleID&lt;/font&gt;&lt;font color=#808080 size=2&gt;,&lt;/font&gt;&lt;font size=2&gt; S&lt;/font&gt;&lt;font color=#808080 size=2&gt;.&lt;/font&gt;&lt;font size=2&gt;TypeFullName&lt;/font&gt;&lt;font color=#808080 size=2&gt;,&lt;/font&gt;&lt;font size=2&gt; S&lt;/font&gt;&lt;font color=#808080 size=2&gt;.&lt;/font&gt;&lt;font size=2&gt;TimeLapse&lt;/font&gt;&lt;font color=#808080 size=2&gt;,&lt;/font&gt;&lt;font size=2&gt; S&lt;/font&gt;&lt;font color=#808080 size=2&gt;.&lt;/font&gt;&lt;font size=2&gt;TimeLapseMeasurement&lt;/font&gt;&lt;font color=#808080 size=2&gt;,&lt;/font&gt;&lt;font size=2&gt; S&lt;/font&gt;&lt;font color=#808080 size=2&gt;.&lt;/font&gt;&lt;font size=2&gt;RetryTimeLapse&lt;/font&gt;&lt;font color=#808080 size=2&gt;,&lt;/font&gt;&lt;font size=2&gt; S&lt;/font&gt;&lt;font color=#808080 size=2&gt;.&lt;/font&gt;&lt;font size=2&gt;RetryTimeLapseMeasurement&lt;/font&gt;&lt;font color=#808080 size=2&gt;,&lt;/font&gt;&lt;font size=2&gt; S&lt;/font&gt;&lt;font color=#808080 size=2&gt;.&lt;/font&gt;&lt;font size=2&gt;ObjectDependencies&lt;/font&gt;&lt;font color=#808080 size=2&gt;,&lt;/font&gt;&lt;font size=2&gt; S&lt;/font&gt;&lt;font color=#808080 size=2&gt;.&lt;/font&gt;&lt;font size=2&gt;AttachToEvent&lt;/font&gt;&lt;font color=#808080 size=2&gt;,&lt;/font&gt;&lt;font size=2&gt; S&lt;/font&gt;&lt;font color=#808080 size=2&gt;.&lt;/font&gt;&lt;font size=2&gt;RetainHistoryNum&lt;/font&gt;&lt;font color=#808080 size=2&gt;,&lt;/font&gt;&lt;font size=2&gt; S&lt;/font&gt;&lt;font color=#808080 size=2&gt;.&lt;/font&gt;&lt;font size=2&gt;CatchUpEnabled&lt;/font&gt;&lt;font color=#808080 size=2&gt;,&lt;/font&gt;&lt;font size=2&gt; S&lt;/font&gt;&lt;font color=#808080 size=2&gt;.&lt;/font&gt;&lt;font size=2&gt;Enabled&lt;/font&gt;&lt;font color=#808080 size=2&gt;,&lt;/font&gt;&lt;font size=2&gt; SH&lt;/font&gt;&lt;font color=#808080 size=2&gt;.&lt;/font&gt;&lt;font size=2&gt;NextStart&lt;/font&gt;&lt;font color=#808080 size=2&gt;,&lt;/font&gt;&lt;font size=2&gt; S&lt;/font&gt;&lt;font color=#808080 size=2&gt;.&lt;/font&gt;&lt;font size=2&gt;Servers&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&gt;
&lt;p&gt;
&lt;font face="Times New Roman" color=#000080 size=3&gt;In&amp;nbsp;ScheduleHistory we&amp;nbsp;found
a little over 6 thousand rows. You can use the following to check your db:&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#ff0000 size=2&gt;&lt;font face="Times New Roman" color=#000000&gt;&lt;font color=#0000ff size=2&gt;select&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#ff00ff size=2&gt;count&lt;/font&gt;&lt;font color=#808080 size=2&gt;(*)&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#0000ff size=2&gt;from&lt;/font&gt;&lt;font size=2&gt; schedulehistory&lt;br&gt;
&lt;br&gt;
&lt;font color=#000080 size=3&gt;6000+ does not seem like that many rows to be causing that
much of a peak, but regardless we deleted them all getting desperate at this point:&lt;/font&gt;
&lt;/p&gt;
&lt;font color=#0000ff size=2&gt; 
&lt;p&gt;
delete
&lt;/font&gt;&lt;font size=2&gt; schedulehistory&lt;/font&gt;
&lt;br&gt;
&lt;br&gt;
&lt;font color=#000080 size=3&gt;Executing the&amp;nbsp;2 sprocs again for the schedule, and
cpu barely gets over 3% utilization. The site is again fast and responsive and I was
able to get in and check settings without getting timeouts. So,&amp;nbsp;as an interim
fix I lowered the defaults in &amp;nbsp;DotNetNuke.Services.Scheduling.PurgeScheduleHistory&amp;nbsp;under
Host &amp;gt; Schedule.&lt;/font&gt;&gt;
&lt;p&gt;
&lt;img src="http://dnnblog.venexus.com/content/binary/purge-schedule-history-settings1.JPG" border=0&gt;
&lt;/font&gt;&gt;&gt;&gt;&gt;
&lt;p&gt;
&lt;font color=#000080&gt;I am concerned about why 6000 rows of data would be taking such
a hit on cpu resources. However, that it more records than I believe should be there,
so lowering the defaults will help. Nothing in the DNN stored procedure for GetSchedule
really stands out at me as being problematic, nor at first glance do I see anything
that could be changed that may help, but I will ponder on this some more in my copious
spare time.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000080&gt;So, if you are having trouble with SQL Server performance&amp;nbsp;and
DNN, check and make sure you keep your EventLog and ScheduleHistory purged. &lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000080&gt;If you need help, be sure to checkout our &lt;/font&gt;&lt;a href="http://www.venexus.com/Services/DotNetNuke/DotNetNukeSupport/tabid/912/Default.aspx"&gt;DNN
Support Packages&lt;/a&gt;.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://dnnblog.venexus.com/aggbug.ashx?id=4da6fbc2-bdd4-4f65-bd91-e0eff928289c" /&gt;</description>
      <category>DotNetNuke Errors;DotNetNuke General;MS SQL Server</category>
    </item>
    <item>
      <trackback:ping>http://dnnblog.venexus.com/Trackback.aspx?guid=ea99a8b1-32ca-4adb-b2aa-a5e724d0df91</trackback:ping>
      <pingback:server>http://dnnblog.venexus.com/pingback.aspx</pingback:server>
      <pingback:target>http://dnnblog.venexus.com/PermaLink,guid,ea99a8b1-32ca-4adb-b2aa-a5e724d0df91.aspx</pingback:target>
      <dc:creator>Jeff Smith</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
We released the latest version of our search engine module last week. It has all of
the features I mentioned in my previous post, plus the ability to add excluded URLs
and partial URLs. 
</p>
        <p>
Here are the new specs:
</p>
        <p>
Items marked with <font color="#ff0000">*</font> are new
</p>
        <p>
          <table cellspacing="0" cellpadding="0" border="1">
            <tbody>
              <tr>
                <td>
                  <center>
                    <strong>
                      <font face="Verdana" color="#000080" size="2">Features</font>
                    </strong>
                  </center>
                </td>
                <td>
                  <center>
                    <strong>
                      <font face="Verdana" color="#000080" size="2">Standard Version</font>
                    </strong>
                  </center>
                </td>
                <td>
                  <center>
                    <strong>
                      <font face="Verdana" color="#000080" size="2">Pro Version</font>
                    </strong>
                  </center>
                </td>
              </tr>
              <tr>
                <td>
                  <font face="Verdana">
                    <font color="#000080" size="1">
                      <strong>Seamus Features</strong>
                    </font>
                  </font>
                </td>
                <td>
                  <font face="Verdana">
                    <font color="#000080" size="1"> </font>
                  </font>
                </td>
                <td>
                  <font face="Verdana">
                    <font color="#000080" size="1"> </font>
                  </font>
                </td>
              </tr>
              <tr>
                <td color="#000080" size="1">
                  <font face="Verdana">
                    <font size="1">
                      <font color="#000080">Maximum # of Pages</font>
                    </font>
                  </font>
                </td>
                <td>
                  <center>
                    <font face="Verdana" color="#000080" size="1">500</font>
                  </center>
                </td>
                <td>
                  <center>
                    <font face="Verdana" color="#000080" size="1">Unlimited</font>
                  </center>
                </td>
              </tr>
              <tr>
                <td color="#000080" size="1">
                  <font face="Verdana">
                    <font size="1">
                      <font color="#000080">Install on commercial site</font>
                    </font>
                  </font>
                </td>
                <td>
                  <center>
                    <font face="Verdana" color="#000080" size="1">No</font>
                  </center>
                </td>
                <td>
                  <center>
                    <font face="Verdana" color="#000080" size="1">Yes</font>
                  </center>
                </td>
              </tr>
              <tr>
                <td color="#000080" size="1">
                  <font face="Verdana">
                    <font size="1">
                      <font color="#000080">Scheduled Index Updates</font>
                    </font>
                  </font>
                </td>
                <td>
                  <center>
                    <font face="Verdana" color="#000080" size="1">Yes</font>
                  </center>
                </td>
                <td>
                  <center>
                    <font face="Verdana" color="#000080" size="1">Yes</font>
                  </center>
                </td>
              </tr>
              <tr>
                <td color="#000080" size="1">
                  <font face="Verdana">
                    <font size="1">
                      <font color="#000080">Announcements Module Support</font>
                    </font>
                  </font>
                </td>
                <td>
                  <center>
                    <font face="Verdana" color="#000080" size="1">Yes</font>
                  </center>
                </td>
                <td>
                  <center>
                    <font face="Verdana" color="#000080" size="1">Yes</font>
                  </center>
                </td>
              </tr>
              <tr>
                <td color="#000080" size="1">
                  <font face="Verdana">
                    <font size="1">
                      <font color="#000080">Contacts Module Support</font>
                    </font>
                  </font>
                </td>
                <td>
                  <center>
                    <font face="Verdana" color="#000080" size="1">Yes</font>
                  </center>
                </td>
                <td>
                  <center>
                    <font face="Verdana" color="#000080" size="1">Yes</font>
                  </center>
                </td>
              </tr>
              <tr>
                <td color="#000080" size="1">
                  <font face="Verdana">
                    <font size="1">
                      <font color="#000080">Events Module Support</font>
                    </font>
                  </font>
                </td>
                <td>
                  <center>
                    <font face="Verdana" color="#000080" size="1">Yes</font>
                  </center>
                </td>
                <td>
                  <center>
                    <font face="Verdana" color="#000080" size="1">Yes</font>
                  </center>
                </td>
              </tr>
              <tr>
                <td color="#000080" size="1">
                  <font face="Verdana">
                    <font size="1">
                      <font color="#000080">FAQ Module Support</font>
                    </font>
                  </font>
                </td>
                <td>
                  <center>
                    <font face="Verdana" color="#000080" size="1">Yes</font>
                  </center>
                </td>
                <td>
                  <center>
                    <font face="Verdana" color="#000080" size="1">Yes</font>
                  </center>
                </td>
              </tr>
              <tr>
                <td color="#000080" size="1">
                  <font face="Verdana">
                    <font size="1">
                      <font color="#000080">Links Module Support</font>
                    </font>
                  </font>
                </td>
                <td>
                  <center>
                    <font face="Verdana" color="#000080" size="1">Yes</font>
                  </center>
                </td>
                <td>
                  <center>
                    <font face="Verdana" color="#000080" size="1">Yes</font>
                  </center>
                </td>
              </tr>
              <tr>
                <td color="#000080" size="1">
                  <font face="Verdana">
                    <font size="1">
                      <font color="#000080">Text/HTML Module Support</font>
                    </font>
                  </font>
                </td>
                <td>
                  <center>
                    <font face="Verdana" color="#000080" size="1">Yes</font>
                  </center>
                </td>
                <td>
                  <center>
                    <font face="Verdana" color="#000080" size="1">Yes</font>
                  </center>
                </td>
              </tr>
              <tr>
                <td color="#000080" size="1">
                  <font face="Verdana">
                    <font size="1">
                      <font color="#000080">Index MS Excel Documents</font>
                    </font>
                    <font color="#ff0000">*</font>
                  </font>
                </td>
                <td>
                  <center>
                    <font face="Verdana" color="#000080" size="1">No</font>
                  </center>
                </td>
                <td>
                  <center>
                    <font face="Verdana" color="#000080" size="1">Yes</font>
                  </center>
                </td>
              </tr>
              <tr>
                <td color="#000080" size="1">
                  <font face="Verdana">
                    <font size="1">
                      <font color="#000080">Index MS PowerPoint Documents</font>
                    </font>
                    <font color="#ff0000">*</font>
                  </font>
                </td>
                <td>
                  <center>
                    <font face="Verdana" color="#000080" size="1">No</font>
                  </center>
                </td>
                <td>
                  <center>
                    <font face="Verdana" color="#000080" size="1">Yes</font>
                  </center>
                </td>
              </tr>
              <tr>
                <td color="#000080" size="1">
                  <font face="Verdana">
                    <font size="1">
                      <font color="#000080">Index MS Word Documents</font>
                    </font>
                    <font color="#ff0000">*</font>
                  </font>
                </td>
                <td>
                  <center>
                    <font face="Verdana" color="#000080" size="1">No</font>
                  </center>
                </td>
                <td>
                  <center>
                    <font face="Verdana" color="#000080" size="1">Yes</font>
                  </center>
                </td>
              </tr>
              <tr>
                <td color="#000080" size="1">
                  <font face="Verdana">
                    <font size="1">
                      <font color="#000080">Index PDF Documents</font>
                    </font>
                    <font color="#ff0000">*</font>
                  </font>
                </td>
                <td>
                  <center>
                    <font face="Verdana" color="#000080" size="1">No</font>
                  </center>
                </td>
                <td>
                  <center>
                    <font face="Verdana" color="#000080" size="1">Yes</font>
                  </center>
                </td>
              </tr>
              <tr>
                <td color="#000080" size="1">
                  <font face="Verdana">
                    <font size="1">
                      <font color="#000080">Index Rich Text Files</font>
                    </font>
                    <font color="#ff0000">*</font>
                  </font>
                </td>
                <td>
                  <center>
                    <font face="Verdana" color="#000080" size="1">No</font>
                  </center>
                </td>
                <td>
                  <center>
                    <font face="Verdana" color="#000080" size="1">Yes</font>
                  </center>
                </td>
              </tr>
              <tr>
                <td color="#000080" size="1">
                  <font face="Verdana">
                    <font size="1">
                      <font color="#000080">Global Crawler</font>
                    </font>
                    <font color="#ff0000">*</font>
                  </font>
                </td>
                <td>
                  <center>
                    <font face="Verdana" color="#000080" size="1">No</font>
                  </center>
                </td>
                <td>
                  <center>
                    <font face="Verdana" color="#000080" size="1">Yes</font>
                  </center>
                </td>
              </tr>
              <tr>
                <td color="#000080" size="1">
                  <font face="Verdana">
                    <font size="1">
                      <font color="#000080">Allows users to add feeds</font>
                    </font>
                  </font>
                </td>
                <td>
                  <center>
                    <font face="Verdana" color="#000080" size="1">No</font>
                  </center>
                </td>
                <td>
                  <center>
                    <font face="Verdana" color="#000080" size="1">Yes</font>
                  </center>
                </td>
              </tr>
              <tr>
                <td color="#000080" size="1">
                  <font face="Verdana">
                    <font size="1">
                      <font color="#000080">Custom User Agent</font>
                    </font>
                  </font>
                </td>
                <td>
                  <center>
                    <font face="Verdana" color="#000080" size="1">No</font>
                  </center>
                </td>
                <td>
                  <center>
                    <font face="Verdana" color="#000080" size="1">Yes</font>
                  </center>
                </td>
              </tr>
              <tr>
                <td color="#000080" size="1">
                  <font face="Verdana">
                    <font size="1">
                      <font color="#000080">Obeys Robots.txt</font>
                    </font>
                  </font>
                </td>
                <td>
                  <center>
                    <font face="Verdana" color="#000080" size="1">Yes</font>
                  </center>
                </td>
                <td>
                  <center>
                    <font face="Verdana" color="#000080" size="1">Yes</font>
                  </center>
                </td>
              </tr>
              <tr>
                <td color="#000080" size="1">
                  <font face="Verdana">
                    <font size="1">
                      <font color="#000080">TTL Support</font>
                    </font>
                  </font>
                </td>
                <td>
                  <center>
                    <font face="Verdana" color="#000080" size="1">Yes</font>
                  </center>
                </td>
                <td>
                  <center>
                    <font face="Verdana" color="#000080" size="1">Yes</font>
                  </center>
                </td>
              </tr>
              <tr>
                <td color="#000080" size="1">
                  <font face="Verdana">
                    <font size="1">
                      <font color="#000080">Feed and Queue Aggregation
Using AJAX</font>
                    </font>
                  </font>
                </td>
                <td>
                  <center>
                    <font face="Verdana" color="#000080" size="1">Yes</font>
                  </center>
                </td>
                <td>
                  <center>
                    <font face="Verdana" color="#000080" size="1">Yes</font>
                  </center>
                </td>
              </tr>
              <tr>
                <td color="#000080" size="1">
                  <font face="Verdana">
                    <font size="1">
                      <font color="#000080">Display Top X Latest Items</font>
                    </font>
                  </font>
                </td>
                <td>
                  <center>
                    <font face="Verdana" color="#000080" size="1">Yes</font>
                  </center>
                </td>
                <td>
                  <center>
                    <font face="Verdana" color="#000080" size="1">Yes</font>
                  </center>
                </td>
              </tr>
              <tr>
                <td color="#000080" size="1">
                  <font face="Verdana">
                    <font size="1">
                      <font color="#000080">XSLT Support</font>
                    </font>
                  </font>
                </td>
                <td>
                  <center>
                    <font face="Verdana" color="#000080" size="1">Yes</font>
                  </center>
                </td>
                <td>
                  <center>
                    <font face="Verdana" color="#000080" size="1">Yes</font>
                  </center>
                </td>
              </tr>
              <tr>
                <td color="#000080" size="1">
                  <font face="Verdana">
                    <font size="1">
                      <font color="#000080">Latest Items RSS Feed Generation</font>
                    </font>
                  </font>
                </td>
                <td>
                  <center>
                    <font face="Verdana" color="#000080" size="1">Yes</font>
                  </center>
                </td>
                <td>
                  <center>
                    <font face="Verdana" color="#000080" size="1">Yes</font>
                  </center>
                </td>
              </tr>
              <tr>
                <td color="#000080" size="1">
                  <font face="Verdana">
                    <font size="1">
                      <font color="#000080">Portal Specific Feed</font>
                    </font>
                  </font>
                </td>
                <td>
                  <center>
                    <font face="Verdana" color="#000080" size="1">Yes</font>
                  </center>
                </td>
                <td>
                  <center>
                    <font face="Verdana" color="#000080" size="1">Yes</font>
                  </center>
                </td>
              </tr>
              <tr>
                <td color="#000080" size="1">
                  <font face="Verdana">
                    <font size="1">
                      <font color="#000080">Enclosure/Podcast Support</font>
                    </font>
                  </font>
                </td>
                <td>
                  <center>
                    <font face="Verdana" color="#000080" size="1">No</font>
                  </center>
                </td>
                <td>
                  <center>
                    <font face="Verdana" color="#000080" size="1">Yes</font>
                  </center>
                </td>
              </tr>
              <tr>
                <td color="#000080" size="1">
                  <font face="Verdana">
                    <font size="1">
                      <font color="#000080">Pinging Service</font>
                    </font>
                  </font>
                </td>
                <td>
                  <center>
                    <font face="Verdana" color="#000080" size="1">No</font>
                  </center>
                </td>
                <td>
                  <center>
                    <font face="Verdana" color="#000080" size="1">Yes</font>
                  </center>
                </td>
              </tr>
              <tr>
                <td color="#000080" size="1">
                  <font face="Verdana">
                    <font size="1">
                      <font color="#000080">Exclude URLs</font>
                    </font>
                    <font color="#ff0000">*</font>
                  </font>
                </td>
                <td>
                  <center>
                    <font face="Verdana" color="#000080" size="1">Yes</font>
                  </center>
                </td>
                <td>
                  <center>
                    <font face="Verdana" color="#000080" size="1">Yes</font>
                  </center>
                </td>
              </tr>
              <tr>
                <td color="#000080" size="1">
                  <font face="Verdana">
                    <font color="#000080" size="1"> </font>
                  </font>
                </td>
                <td>
                  <font face="Verdana">
                    <font color="#000080" size="1"> </font>
                  </font>
                </td>
                <td>
                  <font face="Verdana">
                    <font color="#000080" size="1"> </font>
                  </font>
                </td>
              </tr>
              <tr>
                <td>
                  <font face="Verdana">
                    <font color="#000080" size="1">
                      <strong>Search Features</strong>
                    </font>
                  </font>
                </td>
                <td>
                  <font face="Verdana">
                    <font color="#000080" size="1"> </font>
                  </font>
                </td>
                <td>
                  <font face="Verdana">
                    <font color="#000080" size="1"> </font>
                  </font>
                </td>
              </tr>
              <tr>
                <td color="#000080" size="1">
                  <font face="Verdana">
                    <font size="1">
                      <font color="#000080">Search Skin Object</font>
                    </font>
                  </font>
                </td>
                <td>
                  <center>
                    <font face="Verdana" color="#000080" size="1">Yes</font>
                  </center>
                </td>
                <td>
                  <center>
                    <font face="Verdana" color="#000080" size="1">Yes</font>
                  </center>
                </td>
              </tr>
              <tr>
                <td color="#000080" size="1">
                  <font face="Verdana">
                    <font size="1">
                      <font color="#000080">Use Image or Text for Search
button</font>
                    </font>
                  </font>
                </td>
                <td>
                  <center>
                    <font face="Verdana" color="#000080" size="1">Yes</font>
                  </center>
                </td>
                <td>
                  <center>
                    <font face="Verdana" color="#000080" size="1">Yes</font>
                  </center>
                </td>
              </tr>
              <tr>
                <td color="#000080" size="1">
                  <font face="Verdana">
                    <font size="1">
                      <font color="#000080">and - (AND and OR) Support</font>
                    </font>
                  </font>
                </td>
                <td>
                  <center>
                    <font face="Verdana" color="#000080" size="1">Yes</font>
                  </center>
                </td>
                <td>
                  <center>
                    <font face="Verdana" color="#000080" size="1">Yes</font>
                  </center>
                </td>
              </tr>
              <tr>
                <td color="#000080" size="1">
                  <font face="Verdana">
                    <font size="1">
                      <font color="#000080">Quoted Search Support</font>
                    </font>
                  </font>
                </td>
                <td>
                  <center>
                    <font face="Verdana" color="#000080" size="1">Yes</font>
                  </center>
                </td>
                <td>
                  <center>
                    <font face="Verdana" color="#000080" size="1">Yes</font>
                  </center>
                </td>
              </tr>
              <tr>
                <td color="#000080" size="1">
                  <font face="Verdana">
                    <font size="1">
                      <font color="#000080">Keyword Highlighting</font>
                    </font>
                  </font>
                </td>
                <td>
                  <center>
                    <font face="Verdana" color="#000080" size="1">Yes</font>
                  </center>
                </td>
                <td>
                  <center>
                    <font face="Verdana" color="#000080" size="1">Yes</font>
                  </center>
                </td>
              </tr>
              <tr>
                <td color="#000080" size="1">
                  <font face="Verdana">
                    <font size="1">
                      <font color="#000080">Obeys DNN Security</font>
                    </font>
                  </font>
                </td>
                <td>
                  <center>
                    <font face="Verdana" color="#000080" size="1">Yes</font>
                  </center>
                </td>
                <td>
                  <center>
                    <font face="Verdana" color="#000080" size="1">Yes</font>
                  </center>
                </td>
              </tr>
              <tr>
                <td color="#000080" size="1">
                  <font face="Verdana">
                    <font size="1">
                      <font color="#000080">Social Bookmarking Support</font>
                    </font>
                    <font color="#ff0000">*</font>
                  </font>
                </td>
                <td>
                  <center>
                    <font face="Verdana" color="#000080" size="1">No</font>
                  </center>
                </td>
                <td>
                  <center>
                    <font face="Verdana" color="#000080" size="1">Yes</font>
                  </center>
                </td>
              </tr>
              <tr>
                <td color="#000080" size="1">
                  <font face="Verdana">
                    <font color="#000080" size="1"> </font>
                  </font>
                </td>
                <td>
                  <font face="Verdana">
                    <font color="#000080" size="1"> </font>
                  </font>
                </td>
                <td>
                  <font face="Verdana">
                    <font color="#000080" size="1"> </font>
                  </font>
                </td>
              </tr>
              <tr>
                <td>
                  <font face="Verdana">
                    <font color="#000080" size="1">
                      <strong>Support</strong>
                    </font>
                  </font>
                </td>
                <td>
                  <font face="Verdana">
                    <font color="#000080" size="1"> </font>
                  </font>
                </td>
                <td>
                  <font face="Verdana">
                    <font color="#000080" size="1"> </font>
                  </font>
                </td>
              </tr>
              <tr>
                <td color="#000080" size="1">
                  <font face="Verdana">
                    <font size="1">
                      <font color="#000080">Issue Tracker</font>
                    </font>
                  </font>
                </td>
                <td>
                  <center>
                    <font face="Verdana" color="#000080" size="1">Yes</font>
                  </center>
                </td>
                <td>
                  <center>
                    <font face="Verdana" color="#000080" size="1">Yes</font>
                  </center>
                </td>
              </tr>
              <tr>
                <td color="#000080" size="1">
                  <font face="Verdana">
                    <font size="1">
                      <font color="#000080">Email</font>
                    </font>
                  </font>
                </td>
                <td>
                  <center>
                    <font face="Verdana" color="#000080" size="1">No</font>
                  </center>
                </td>
                <td>
                  <center>
                    <font face="Verdana" color="#000080" size="1">Yes</font>
                  </center>
                </td>
              </tr>
              <tr>
                <td color="#000080" size="1">
                  <font size="1">
                    <font face="Verdana" color="#000080">Phone </font>
                  </font>
                </td>
                <td>
                  <center>
                    <font face="Verdana" color="#000080" size="1">No</font>
                  </center>
                </td>
                <td>
                  <center>
                    <font face="Verdana" color="#000080" size="1">1 Call</font>
                  </center>
                </td>
              </tr>
              <tr>
                <td>
                  <font face="Verdana">
                    <font color="#000080"> </font>
                    <font color="#000080" size="2">
                      <strong>Price</strong>
                    </font>
                  </font>
                </td>
                <td>
                  <font face="Verdana">
                    <font color="#000080"> </font>
                  </font>
                  <center>
                    <font face="Verdana" color="#000080" size="2">
                      <strong>Free</strong>
                    </font>
                  </center>
                </td>
                <td>
                  <font face="Verdana">
                    <font color="#000080"> </font>
                  </font>
                  <center>
                    <font face="Verdana" color="#000080" size="2">
                      <strong>$199 Per Year</strong>
                    </font>
                  </center>
                  <center>
                    <a href="http://www.venexus.com/Store/tabid/1317/CategoryID/2/List/1/Level/a/ProductID/5/Default.aspx">
                      <font face="Verdana">
                        <img height="31" alt="BuyNowButton.gif" src="http://www.venexus.com/Portals/0/BuyNowButton.gif" width="103" border="0" />
                      </font>
                    </a>
                  </center>
                </td>
              </tr>
            </tbody>
          </table>
 <font color="#000000"></font></p>
        <p>
You can <a href="http://www.venexus.com/LinkClick.aspx?fileticket=eL8LS%2bMofr4%3d&amp;tabid=1280&amp;mid=3030">download
the free version here</a>. 
</p>
        <img width="0" height="0" src="http://dnnblog.venexus.com/aggbug.ashx?id=ea99a8b1-32ca-4adb-b2aa-a5e724d0df91" />
      </body>
      <title>VSE 1.2 Release - A DNN Search Engine Module</title>
      <guid isPermaLink="false">http://dnnblog.venexus.com/PermaLink,guid,ea99a8b1-32ca-4adb-b2aa-a5e724d0df91.aspx</guid>
      <link>http://dnnblog.venexus.com/VSE+12+Release+A+DNN+Search+Engine+Module.aspx</link>
      <pubDate>Tue, 06 Mar 2007 16:25:17 GMT</pubDate>
      <description>&lt;p&gt;
We released the latest version of our search engine module last week. It has all of
the features I mentioned in my previous post, plus the ability to add excluded URLs
and partial URLs. 
&lt;/p&gt;
&lt;p&gt;
Here are the new specs:
&lt;/p&gt;
&lt;p&gt;
Items marked with &lt;font color=#ff0000&gt;*&lt;/font&gt; are new
&lt;/p&gt;
&lt;p&gt;
&lt;table cellspacing=0 cellpadding=0 border=1&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;center&gt;&lt;strong&gt;&lt;font face=Verdana color=#000080 size=2&gt;Features&lt;/font&gt;&lt;/strong&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;strong&gt;&lt;font face=Verdana color=#000080 size=2&gt;Standard Version&lt;/font&gt;&lt;/strong&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;strong&gt;&lt;font face=Verdana color=#000080 size=2&gt;Pro Version&lt;/font&gt;&lt;/strong&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;font face=Verdana&gt;&lt;font color=#000080 size=1&gt;&lt;strong&gt;Seamus Features&lt;/strong&gt;&lt;/font&gt; &lt;/font&gt;&lt;/td&gt;
&lt;td&gt;
&lt;font face=Verdana&gt;&lt;font color=#000080 size=1&gt;&amp;nbsp;&lt;/font&gt; &lt;/font&gt;&lt;/td&gt;
&lt;td&gt;
&lt;font face=Verdana&gt;&lt;font color=#000080 size=1&gt;&amp;nbsp;&lt;/font&gt; &lt;/font&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td color="#000080" size="1"&gt;
&lt;font face=Verdana&gt;&lt;font size=1&gt;&lt;font color=#000080&gt;Maximum # of Pages&lt;/font&gt;&lt;/font&gt; &lt;/font&gt;&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;500&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Unlimited&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td color="#000080" size="1"&gt;
&lt;font face=Verdana&gt;&lt;font size=1&gt;&lt;font color=#000080&gt;Install on commercial site&lt;/font&gt;&lt;/font&gt; &lt;/font&gt;&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;No&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td color="#000080" size="1"&gt;
&lt;font face=Verdana&gt;&lt;font size=1&gt;&lt;font color=#000080&gt;Scheduled Index Updates&lt;/font&gt;&lt;/font&gt; &lt;/font&gt;&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td color="#000080" size="1"&gt;
&lt;font face=Verdana&gt;&lt;font size=1&gt;&lt;font color=#000080&gt;Announcements Module Support&lt;/font&gt;&lt;/font&gt; &lt;/font&gt;&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td color="#000080" size="1"&gt;
&lt;font face=Verdana&gt;&lt;font size=1&gt;&lt;font color=#000080&gt;Contacts Module Support&lt;/font&gt;&lt;/font&gt; &lt;/font&gt;&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td color="#000080" size="1"&gt;
&lt;font face=Verdana&gt;&lt;font size=1&gt;&lt;font color=#000080&gt;Events Module Support&lt;/font&gt;&lt;/font&gt; &lt;/font&gt;&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td color="#000080" size="1"&gt;
&lt;font face=Verdana&gt;&lt;font size=1&gt;&lt;font color=#000080&gt;FAQ Module Support&lt;/font&gt;&lt;/font&gt; &lt;/font&gt;&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td color="#000080" size="1"&gt;
&lt;font face=Verdana&gt;&lt;font size=1&gt;&lt;font color=#000080&gt;Links Module Support&lt;/font&gt;&lt;/font&gt; &lt;/font&gt;&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td color="#000080" size="1"&gt;
&lt;font face=Verdana&gt;&lt;font size=1&gt;&lt;font color=#000080&gt;Text/HTML Module Support&lt;/font&gt;&lt;/font&gt; &lt;/font&gt;&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td color="#000080" size="1"&gt;
&lt;font face=Verdana&gt;&lt;font size=1&gt;&lt;font color=#000080&gt;Index MS Excel Documents&lt;/font&gt;&lt;/font&gt; &lt;font color=#ff0000&gt;*&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;No&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td color="#000080" size="1"&gt;
&lt;font face=Verdana&gt;&lt;font size=1&gt;&lt;font color=#000080&gt;Index MS PowerPoint Documents&lt;/font&gt;&lt;/font&gt; &lt;font color=#ff0000&gt;*&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;No&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td color="#000080" size="1"&gt;
&lt;font face=Verdana&gt;&lt;font size=1&gt;&lt;font color=#000080&gt;Index MS Word Documents&lt;/font&gt;&lt;/font&gt; &lt;font color=#ff0000&gt;*&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;No&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td color="#000080" size="1"&gt;
&lt;font face=Verdana&gt;&lt;font size=1&gt;&lt;font color=#000080&gt;Index PDF Documents&lt;/font&gt;&lt;/font&gt; &lt;font color=#ff0000&gt;*&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;No&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td color="#000080" size="1"&gt;
&lt;font face=Verdana&gt;&lt;font size=1&gt;&lt;font color=#000080&gt;Index Rich Text Files&lt;/font&gt;&lt;/font&gt; &lt;font color=#ff0000&gt;*&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;No&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td color="#000080" size="1"&gt;
&lt;font face=Verdana&gt;&lt;font size=1&gt;&lt;font color=#000080&gt;Global Crawler&lt;/font&gt;&lt;/font&gt; &lt;font color=#ff0000&gt;*&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;No&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td color="#000080" size="1"&gt;
&lt;font face=Verdana&gt;&lt;font size=1&gt;&lt;font color=#000080&gt;Allows users to add feeds&lt;/font&gt;&lt;/font&gt; &lt;/font&gt;&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;No&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td color="#000080" size="1"&gt;
&lt;font face=Verdana&gt;&lt;font size=1&gt;&lt;font color=#000080&gt;Custom User Agent&lt;/font&gt;&lt;/font&gt; &lt;/font&gt;&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;No&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td color="#000080" size="1"&gt;
&lt;font face=Verdana&gt;&lt;font size=1&gt;&lt;font color=#000080&gt;Obeys Robots.txt&lt;/font&gt;&lt;/font&gt; &lt;/font&gt;&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td color="#000080" size="1"&gt;
&lt;font face=Verdana&gt;&lt;font size=1&gt;&lt;font color=#000080&gt;TTL Support&lt;/font&gt;&lt;/font&gt; &lt;/font&gt;&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td color="#000080" size="1"&gt;
&lt;font face=Verdana&gt;&lt;font size=1&gt;&lt;font color=#000080&gt;Feed and Queue Aggregation Using
AJAX&lt;/font&gt;&lt;/font&gt; &lt;/font&gt;&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td color="#000080" size="1"&gt;
&lt;font face=Verdana&gt;&lt;font size=1&gt;&lt;font color=#000080&gt;Display Top X Latest Items&lt;/font&gt;&lt;/font&gt; &lt;/font&gt;&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td color="#000080" size="1"&gt;
&lt;font face=Verdana&gt;&lt;font size=1&gt;&lt;font color=#000080&gt;XSLT Support&lt;/font&gt;&lt;/font&gt; &lt;/font&gt;&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td color="#000080" size="1"&gt;
&lt;font face=Verdana&gt;&lt;font size=1&gt;&lt;font color=#000080&gt;Latest Items RSS Feed Generation&lt;/font&gt;&lt;/font&gt; &lt;/font&gt;&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td color="#000080" size="1"&gt;
&lt;font face=Verdana&gt;&lt;font size=1&gt;&lt;font color=#000080&gt;Portal Specific Feed&lt;/font&gt;&lt;/font&gt; &lt;/font&gt;&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td color="#000080" size="1"&gt;
&lt;font face=Verdana&gt;&lt;font size=1&gt;&lt;font color=#000080&gt;Enclosure/Podcast Support&lt;/font&gt;&lt;/font&gt; &lt;/font&gt;&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;No&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td color="#000080" size="1"&gt;
&lt;font face=Verdana&gt;&lt;font size=1&gt;&lt;font color=#000080&gt;Pinging Service&lt;/font&gt;&lt;/font&gt; &lt;/font&gt;&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;No&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td color="#000080" size="1"&gt;
&lt;font face=Verdana&gt;&lt;font size=1&gt;&lt;font color=#000080&gt;Exclude URLs&lt;/font&gt;&lt;/font&gt; &lt;font color=#ff0000&gt;*&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td color="#000080" size="1"&gt;
&lt;font face=Verdana&gt;&lt;font color=#000080 size=1&gt;&amp;nbsp;&lt;/font&gt; &lt;/font&gt;&lt;/td&gt;
&lt;td&gt;
&lt;font face=Verdana&gt;&lt;font color=#000080 size=1&gt;&amp;nbsp;&lt;/font&gt; &lt;/font&gt;&lt;/td&gt;
&lt;td&gt;
&lt;font face=Verdana&gt;&lt;font color=#000080 size=1&gt;&amp;nbsp;&lt;/font&gt; &lt;/font&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;font face=Verdana&gt;&lt;font color=#000080 size=1&gt;&lt;strong&gt;Search Features&lt;/strong&gt;&lt;/font&gt; &lt;/font&gt;&lt;/td&gt;
&lt;td&gt;
&lt;font face=Verdana&gt;&lt;font color=#000080 size=1&gt;&amp;nbsp;&lt;/font&gt; &lt;/font&gt;&lt;/td&gt;
&lt;td&gt;
&lt;font face=Verdana&gt;&lt;font color=#000080 size=1&gt;&amp;nbsp;&lt;/font&gt; &lt;/font&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td color="#000080" size="1"&gt;
&lt;font face=Verdana&gt;&lt;font size=1&gt;&lt;font color=#000080&gt;Search Skin Object&lt;/font&gt;&lt;/font&gt; &lt;/font&gt;&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td color="#000080" size="1"&gt;
&lt;font face=Verdana&gt;&lt;font size=1&gt;&lt;font color=#000080&gt;Use Image or Text for Search button&lt;/font&gt;&lt;/font&gt; &lt;/font&gt;&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td color="#000080" size="1"&gt;
&lt;font face=Verdana&gt;&lt;font size=1&gt;&lt;font color=#000080&gt;and - (AND and OR) Support&lt;/font&gt;&lt;/font&gt; &lt;/font&gt;&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td color="#000080" size="1"&gt;
&lt;font face=Verdana&gt;&lt;font size=1&gt;&lt;font color=#000080&gt;Quoted Search Support&lt;/font&gt;&lt;/font&gt; &lt;/font&gt;&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td color="#000080" size="1"&gt;
&lt;font face=Verdana&gt;&lt;font size=1&gt;&lt;font color=#000080&gt;Keyword Highlighting&lt;/font&gt;&lt;/font&gt; &lt;/font&gt;&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td color="#000080" size="1"&gt;
&lt;font face=Verdana&gt;&lt;font size=1&gt;&lt;font color=#000080&gt;Obeys DNN Security&lt;/font&gt;&lt;/font&gt; &lt;/font&gt;&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td color="#000080" size="1"&gt;
&lt;font face=Verdana&gt;&lt;font size=1&gt;&lt;font color=#000080&gt;Social Bookmarking Support&lt;/font&gt;&lt;/font&gt; &lt;font color=#ff0000&gt;*&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;No&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td color="#000080" size="1"&gt;
&lt;font face=Verdana&gt;&lt;font color=#000080 size=1&gt;&amp;nbsp;&lt;/font&gt; &lt;/font&gt;&lt;/td&gt;
&lt;td&gt;
&lt;font face=Verdana&gt;&lt;font color=#000080 size=1&gt;&amp;nbsp;&lt;/font&gt; &lt;/font&gt;&lt;/td&gt;
&lt;td&gt;
&lt;font face=Verdana&gt;&lt;font color=#000080 size=1&gt;&amp;nbsp;&lt;/font&gt; &lt;/font&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;font face=Verdana&gt;&lt;font color=#000080 size=1&gt;&lt;strong&gt;Support&lt;/strong&gt;&lt;/font&gt; &lt;/font&gt;&lt;/td&gt;
&lt;td&gt;
&lt;font face=Verdana&gt;&lt;font color=#000080 size=1&gt;&amp;nbsp;&lt;/font&gt; &lt;/font&gt;&lt;/td&gt;
&lt;td&gt;
&lt;font face=Verdana&gt;&lt;font color=#000080 size=1&gt;&amp;nbsp;&lt;/font&gt; &lt;/font&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td color="#000080" size="1"&gt;
&lt;font face=Verdana&gt;&lt;font size=1&gt;&lt;font color=#000080&gt;Issue Tracker&lt;/font&gt;&lt;/font&gt; &lt;/font&gt;&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td color="#000080" size="1"&gt;
&lt;font face=Verdana&gt;&lt;font size=1&gt;&lt;font color=#000080&gt;Email&lt;/font&gt;&lt;/font&gt; &lt;/font&gt;&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;No&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td color="#000080" size="1"&gt;
&lt;font size=1&gt;&lt;font face=Verdana color=#000080&gt;Phone &lt;/font&gt;&lt;/font&gt;&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;No&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;1 Call&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;font face=Verdana&gt;&lt;font color=#000080&gt;&amp;nbsp;&lt;/font&gt; &lt;font color=#000080 size=2&gt;&lt;strong&gt;Price&lt;/strong&gt;&lt;/font&gt; &lt;/font&gt;&lt;/td&gt;
&lt;td&gt;
&lt;font face=Verdana&gt;&lt;font color=#000080&gt;&amp;nbsp;&lt;/font&gt; &lt;/font&gt; 
&lt;center&gt;&lt;font face=Verdana color=#000080 size=2&gt;&lt;strong&gt;Free&lt;/strong&gt;&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;font face=Verdana&gt;&lt;font color=#000080&gt;&amp;nbsp;&lt;/font&gt; &lt;/font&gt; 
&lt;center&gt;&lt;font face=Verdana color=#000080 size=2&gt;&lt;strong&gt;$199 Per Year&lt;/strong&gt;&lt;/font&gt;
&lt;/center&gt;
&lt;center&gt;&lt;a href="http://www.venexus.com/Store/tabid/1317/CategoryID/2/List/1/Level/a/ProductID/5/Default.aspx"&gt;&lt;font face=Verdana&gt;&lt;img height=31 alt=BuyNowButton.gif src="http://www.venexus.com/Portals/0/BuyNowButton.gif" width=103 border=0&gt;&lt;/font&gt;&lt;/a&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&amp;nbsp;&lt;font color=#000000&gt; &lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
You can &lt;a href="http://www.venexus.com/LinkClick.aspx?fileticket=eL8LS%2bMofr4%3d&amp;amp;tabid=1280&amp;amp;mid=3030"&gt;download
the free version here&lt;/a&gt;. 
&lt;/p&gt;
&lt;img width="0" height="0" src="http://dnnblog.venexus.com/aggbug.ashx?id=ea99a8b1-32ca-4adb-b2aa-a5e724d0df91" /&gt;</description>
      <category>DotNetNuke General;DotNetNuke Modules;DotNetNuke Search;MS SQL Server;Search Engine Optimization</category>
    </item>
    <item>
      <trackback:ping>http://dnnblog.venexus.com/Trackback.aspx?guid=e59fc87b-8ac5-4111-831c-2b00b5d4b435</trackback:ping>
      <pingback:server>http://dnnblog.venexus.com/pingback.aspx</pingback:server>
      <pingback:target>http://dnnblog.venexus.com/PermaLink,guid,e59fc87b-8ac5-4111-831c-2b00b5d4b435.aspx</pingback:target>
      <dc:creator>Jeff Smith</dc:creator>
      <title>Pro Version Features of Our DNN Search Engine Modules</title>
      <guid isPermaLink="false">http://dnnblog.venexus.com/PermaLink,guid,e59fc87b-8ac5-4111-831c-2b00b5d4b435.aspx</guid>
      <link>http://dnnblog.venexus.com/Pro+Version+Features+Of+Our+DNN+Search+Engine+Modules.aspx</link>
      <pubDate>Mon, 26 Feb 2007 10:04:36 GMT</pubDate>
      <description>&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font face="Times New Roman" color=#000000 size=3&gt;The Venexus Search Engine is a DotNetNuke
search module, plus a whole lot more. Not only does our DNN search module index your
portal, but also external sites. VSE crawls pages on your site, aggregates RSS feeds
from other sites, and crawls any links for external websites, making it a full search
engine module. &lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/span&gt;&lt;?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" /&gt;Unlike
the core DNN Search module that uses a scheduled task to perform index updates, VSE
crawls and indexes content based on user request. Seamus can be configured for several
different setups and displays, including the ability to hide the module on every page.
When a page is loaded that has the Seamus module on it, Seamus will go out and grab
3 RSS feeds and 3 queued URLs and add any new or updated content to the index. In
order to not delay the page loading for the end user, Seamus utilizes 
&lt;st1:City w:st="on"&gt;
&lt;st1:place w:st="on"&gt;AJAX&lt;/st1:place&gt;
&lt;/st1:City&gt;
to make aggregation request, providing a seamless integration into your site.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;
&lt;o:p&gt;
&lt;font face="Times New Roman" color=#000000 size=3&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font face="Times New Roman" color=#000000 size=3&gt;Here are the pro features of VSE:&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;o:p&gt;
&lt;font face="Times New Roman" color=#000000 size=3&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt 0.25in; TEXT-INDENT: -0.25in; tab-stops: list .25in; mso-list: l4 level2 lfo1"&gt;
&lt;font color=#000000&gt;&lt;font face="Times New Roman"&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;&lt;span style="FONT-SIZE: 14pt"&gt;&lt;span style="mso-list: Ignore"&gt;1.1&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;&lt;span style="FONT-SIZE: 14pt"&gt; Pro
Features&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;&lt;/b&gt;&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;ul style="MARGIN-TOP: 0in" type=disc&gt;
&lt;li class=MsoNormal style="MARGIN: 0in 0in 0pt; tab-stops: list .5in; mso-list: l1 level1 lfo5"&gt;
&lt;b style="mso-bidi-font-weight: normal"&gt;&lt;i style="mso-bidi-font-style: normal"&gt;&lt;font size=3&gt;&lt;font color=#000000&gt;&lt;font face="Times New Roman"&gt;Allow
users to add their feeds&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/i&gt;&lt;/b&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;
&lt;font face="Times New Roman" color=#000000 size=3&gt;You can enable users to add feeds
to the system.&lt;br&gt;
&lt;img src="http://dnnblog.venexus.com/content/binary/user-add-feeds.gif" border=0&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;
&lt;font face="Times New Roman" color=#000000 size=3&gt;&lt;/font&gt;&amp;nbsp;
&lt;/p&gt;
&lt;ul style="MARGIN-TOP: 0in" type=disc&gt;
&lt;li class=MsoNormal style="MARGIN: 0in 0in 0pt; tab-stops: list .5in; mso-list: l1 level1 lfo5"&gt;
&lt;b style="mso-bidi-font-weight: normal"&gt;&lt;i style="mso-bidi-font-style: normal"&gt;&lt;font size=3&gt;&lt;font color=#000000&gt;&lt;font face="Times New Roman"&gt;Podcast
Support&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/i&gt;&lt;/b&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;
&lt;font face="Times New Roman" color=#000000 size=3&gt;Indexed items that have files associated
with them are used as enclosures (aka podcast) in the feeds that Seamus generates.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;
&lt;font face="Times New Roman" color=#000000 size=3&gt;&lt;/font&gt;&amp;nbsp;
&lt;/p&gt;
&lt;ul style="MARGIN-TOP: 0in" type=disc&gt;
&lt;li class=MsoNormal style="MARGIN: 0in 0in 0pt; tab-stops: list .5in; mso-list: l1 level1 lfo5"&gt;
&lt;b style="mso-bidi-font-weight: normal"&gt;&lt;i style="mso-bidi-font-style: normal"&gt;&lt;font size=3&gt;&lt;font color=#000000&gt;&lt;font face="Times New Roman"&gt;Pinging
service&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/i&gt;&lt;/b&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;
&lt;font face="Times New Roman" color=#000000 size=3&gt;When the pinging service is enabled,
every time something new is added/updated on your site Seamus will “ping” several
XML-RPC &lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/span&gt;web services for blog and feed
aggregation sites to notify them your portal has new content. The aggregators will
then come to your site and aggregate your feed and provide links to their users to
your site. &lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;
&lt;font face="Times New Roman" color=#000000 size=3&gt;&lt;/font&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;
&lt;font face="Times New Roman" color=#000000 size=3&gt;Here are a few services we ping:&lt;/font&gt;
&lt;/p&gt;
&lt;ul style="MARGIN-TOP: 0in" type=disc&gt;
&lt;ul style="MARGIN-TOP: 0in" type=circle&gt;
&lt;li class=MsoNormal style="MARGIN: 0in 0in 0pt; tab-stops: list 1.0in; mso-list: l1 level2 lfo5"&gt;
&lt;font face="Times New Roman" color=#000000 size=3&gt;&lt;a href="http://www.blogdigger.com"&gt;Blog
Digger&lt;/a&gt;&lt;/font&gt; 
&lt;li class=MsoNormal style="MARGIN: 0in 0in 0pt; tab-stops: list 1.0in; mso-list: l1 level2 lfo5"&gt;
&lt;font face="Times New Roman" color=#000000 size=3&gt;&lt;a href="http://www.feedburner.com"&gt;Feedburner&lt;/a&gt;&lt;/font&gt; 
&lt;li class=MsoNormal style="MARGIN: 0in 0in 0pt; tab-stops: list 1.0in; mso-list: l1 level2 lfo5"&gt;
&lt;font face="Times New Roman" color=#000000 size=3&gt;&lt;a href="http://www.feedster.com"&gt;Feedster&lt;/a&gt;&lt;/font&gt; 
&lt;li class=MsoNormal style="MARGIN: 0in 0in 0pt; tab-stops: list 1.0in; mso-list: l1 level2 lfo5"&gt;
&lt;font face="Times New Roman" color=#000000 size=3&gt;&lt;a href="http://www.google.com"&gt;Google&lt;/a&gt;&lt;/font&gt; 
&lt;li class=MsoNormal style="MARGIN: 0in 0in 0pt; tab-stops: list 1.0in; mso-list: l1 level2 lfo5"&gt;
&lt;font face="Times New Roman" color=#000000 size=3&gt;&lt;a href="http://www.icerocket.com"&gt;Icerocket&lt;/a&gt;&lt;/font&gt; 
&lt;li class=MsoNormal style="MARGIN: 0in 0in 0pt; tab-stops: list 1.0in; mso-list: l1 level2 lfo5"&gt;
&lt;font face="Times New Roman" color=#000000 size=3&gt;&lt;a href="http://www.pingomatic.com"&gt;Pingomatic&lt;/a&gt;&lt;/font&gt; 
&lt;li class=MsoNormal style="MARGIN: 0in 0in 0pt; tab-stops: list 1.0in; mso-list: l1 level2 lfo5"&gt;
&lt;font face="Times New Roman" color=#000000 size=3&gt;&lt;a href="http://www.Syndic8.com"&gt;Syndic8&lt;/a&gt;&lt;/font&gt; 
&lt;li class=MsoNormal style="MARGIN: 0in 0in 0pt; tab-stops: list 1.0in; mso-list: l1 level2 lfo5"&gt;
&lt;font face="Times New Roman" color=#000000 size=3&gt;&lt;a href="http://www.Technorati.com"&gt;Technorati&lt;/a&gt;&lt;/font&gt; 
&lt;li class=MsoNormal style="MARGIN: 0in 0in 0pt; tab-stops: list 1.0in; mso-list: l1 level2 lfo5"&gt;
&lt;font face="Times New Roman" color=#000000 size=3&gt;&lt;a href="http://www.weblogs.com"&gt;WeBlogs.com&lt;/a&gt;&lt;/font&gt; 
&lt;li class=MsoNormal style="MARGIN: 0in 0in 0pt; tab-stops: list 1.0in; mso-list: l1 level2 lfo5"&gt;
&lt;font face="Times New Roman" color=#000000 size=3&gt;&lt;a href="http://my.yahoo.com"&gt;Yahoo&lt;/a&gt;&lt;/font&gt; 
&lt;li class=MsoNormal style="MARGIN: 0in 0in 0pt; tab-stops: list 1.0in; mso-list: l1 level2 lfo5"&gt;
&lt;font face="Times New Roman" color=#000000 size=3&gt;And more…&lt;/font&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; tab-stops: list 1.0in; mso-list: l1 level2 lfo5"&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;ul style="MARGIN-TOP: 0in" type=disc&gt;
&lt;li class=MsoNormal style="MARGIN: 0in 0in 0pt; tab-stops: list .5in; mso-list: l1 level1 lfo5"&gt;
&lt;b style="mso-bidi-font-weight: normal"&gt;&lt;i style="mso-bidi-font-style: normal"&gt;&lt;font size=3&gt;&lt;font color=#000000&gt;&lt;font face="Times New Roman"&gt;Custom
User-Agent&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/i&gt;&lt;/b&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;
&lt;font color=#000000&gt;&lt;font face="Times New Roman" size=3&gt;You can set your own user-agent
to specify your own crawler name. The default user-agent is “&lt;/font&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: Arial"&gt;Seamus/1.1
PRO ( &lt;a href="http://search.venexus.com"&gt;http://search.venexus.com&lt;/a&gt;)”.&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;
&lt;font color=#000000&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: Arial"&gt;&lt;/span&gt;&lt;/font&gt;&amp;nbsp;
&lt;/p&gt;
&lt;ul style="MARGIN-TOP: 0in" type=disc&gt;
&lt;li class=MsoNormal style="MARGIN: 0in 0in 0pt; tab-stops: list .5in; mso-list: l1 level1 lfo5"&gt;
&lt;b style="mso-bidi-font-weight: normal"&gt;&lt;i style="mso-bidi-font-style: normal"&gt;&lt;font size=3&gt;&lt;font color=#000000&gt;&lt;font face="Times New Roman"&gt;Global
Crawler&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/i&gt;&lt;/b&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;
&lt;font face="Times New Roman" color=#000000 size=3&gt;The pro version allows you to be
a global crawler. Any links found on your site, from aggregated news feeds, or from
external links are crawled and indexed.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;o:p&gt;
&lt;font face="Times New Roman" color=#000000 size=3&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font face="Times New Roman" color=#000000 size=3&gt;So, not only are you able to aggregate
even more content with the Pro version when compared to the Standard version, but
you also get the search engine optimization benefits of pinging all of the major blog
and feed aggregation services. This provides you with links directly to your site,
generating more web traffic. You can watch your page rank grow very quickly with this
feature.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;o:p&gt;
&lt;font face="Times New Roman" color=#000000 size=3&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font face="Times New Roman" color=#000000 size=3&gt;Since the release of the 1.1 version,
we have steadily been working on the 1.2 version. We are now testing the latest version
on our demo site: &lt;a href="http://search.venexus.com"&gt;search.venexus.com&lt;/a&gt;. &lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;o:p&gt;
&lt;font face="Times New Roman" color=#000000 size=3&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt 0.25in; TEXT-INDENT: -0.25in; tab-stops: list .25in; mso-list: l4 level2 lfo1"&gt;
&lt;font color=#000000&gt;&lt;font face="Times New Roman"&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;&lt;span style="FONT-SIZE: 14pt"&gt;&lt;span style="mso-list: Ignore"&gt;1.2&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;&lt;span style="FONT-SIZE: 14pt"&gt; Pro
Features (March 1, 2007 Release)&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;&lt;/b&gt;&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;ul style="MARGIN-TOP: 0in" type=disc&gt;
&lt;li class=MsoNormal style="MARGIN: 0in 0in 0pt; tab-stops: list .5in; mso-list: l2 level1 lfo2"&gt;
&lt;b style="mso-bidi-font-weight: normal"&gt;&lt;i style="mso-bidi-font-style: normal"&gt;&lt;font size=3&gt;&lt;font color=#000000&gt;&lt;font face="Times New Roman"&gt;New
file formats indexed&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/i&gt;&lt;/b&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;
&lt;font face="Times New Roman" color=#000000 size=3&gt;You asked for it, so we added support
for all of the most common Office document file types as well as PDF documents. We
have added a new document-to-text converter to our crawler that is able to parse the
actual text from these documents. So not only does Seamus crawl and index HTML, Text,
and XML files, but also the following new formats:&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt 1in; TEXT-INDENT: -0.25in; tab-stops: list 1.0in; mso-list: l0 level1 lfo4"&gt;
&lt;font face="Times New Roman"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font color=#000000&gt;&lt;font size=3&gt;1.&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;font color=#000000 size=3&gt;Excel
files&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt 1in; TEXT-INDENT: -0.25in; tab-stops: list 1.0in; mso-list: l0 level1 lfo4"&gt;
&lt;font face="Times New Roman"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font color=#000000&gt;&lt;font size=3&gt;2.&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;font color=#000000 size=3&gt;PDF
files&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt 1in; TEXT-INDENT: -0.25in; tab-stops: list 1.0in; mso-list: l0 level1 lfo4"&gt;
&lt;font face="Times New Roman"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font color=#000000&gt;&lt;font size=3&gt;3.&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;font color=#000000 size=3&gt;PowerPoint
files&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt 1in; TEXT-INDENT: -0.25in; tab-stops: list 1.0in; mso-list: l0 level1 lfo4"&gt;
&lt;font face="Times New Roman"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font color=#000000&gt;&lt;font size=3&gt;4.&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;font color=#000000 size=3&gt;Rich
text files&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt 1in; TEXT-INDENT: -0.25in; tab-stops: list 1.0in; mso-list: l0 level1 lfo4"&gt;
&lt;font face="Times New Roman"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font color=#000000&gt;&lt;font size=3&gt;5.&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;font color=#000000 size=3&gt;Word
documents&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt 1in; TEXT-INDENT: -0.25in; tab-stops: list 1.0in; mso-list: l0 level1 lfo4"&gt;
&lt;font face="Times New Roman" color=#000000 size=3&gt;&lt;/font&gt;&amp;nbsp;
&lt;/p&gt;
&lt;ul style="MARGIN-TOP: 0in" type=disc&gt;
&lt;li class=MsoNormal style="MARGIN: 0in 0in 0pt; tab-stops: list .5in; mso-list: l2 level1 lfo2"&gt;
&lt;b style="mso-bidi-font-weight: normal"&gt;&lt;i style="mso-bidi-font-style: normal"&gt;&lt;font size=3&gt;&lt;font color=#000000&gt;&lt;font face="Times New Roman"&gt;Social
Bookmarking Support&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/i&gt;&lt;/b&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;
&lt;font face="Times New Roman" color=#000000 size=3&gt;In the search results you can enable
social bookmarking to allow users to easily add bookmarks to their favorite social
bookmarking application/service. This allows user to easily find their favorite links
to your site. Also, the sites that provide this service will generate a link to your
site, giving you more traffic once again.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;
&lt;font face="Times New Roman" color=#000000 size=3&gt;&lt;/font&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;
&lt;font face="Times New Roman" color=#000000 size=3&gt;Here is an example of what it looks
like:&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;
&lt;font face="Times New Roman" color=#000000 size=3&gt;&lt;img src="http://dnnblog.venexus.com/content/binary/social-bookmarking.gif" border=0&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;
&lt;font face="Times New Roman" color=#000000 size=3&gt;Here are the supported sites:&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt 0.5in"&gt;
&lt;o:p&gt;
&lt;font face="Times New Roman" color=#000000 size=3&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt 1in; TEXT-INDENT: -0.25in; tab-stops: list 1.0in; mso-list: l3 level1 lfo3"&gt;
&lt;font face="Times New Roman"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font color=#000000&gt;&lt;font size=3&gt;1.&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;font color=#000000 size=3&gt;&lt;a href="http://www.digg.com"&gt;Digg&lt;/a&gt;&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt 1in; TEXT-INDENT: -0.25in; tab-stops: list 1.0in; mso-list: l3 level1 lfo3"&gt;
&lt;font face="Times New Roman"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font color=#000000&gt;&lt;font size=3&gt;2.&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;font color=#000000 size=3&gt;&lt;a href="http://del.icio.us"&gt;del.icio.us&lt;/a&gt;&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt 1in; TEXT-INDENT: -0.25in; tab-stops: list 1.0in; mso-list: l3 level1 lfo3"&gt;
&lt;font face="Times New Roman"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font color=#000000&gt;&lt;font size=3&gt;3.&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;font color=#000000 size=3&gt;&lt;a href="http://www.furl.net"&gt;FURL&lt;/a&gt;&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt 1in; TEXT-INDENT: -0.25in; tab-stops: list 1.0in; mso-list: l3 level1 lfo3"&gt;
&lt;font face="Times New Roman"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font color=#000000&gt;&lt;font size=3&gt;4.&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;font color=#000000 size=3&gt;&lt;a href="http://www.Reddit.com"&gt;Reddit&lt;/a&gt;&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt 1in; TEXT-INDENT: -0.25in; tab-stops: list 1.0in; mso-list: l3 level1 lfo3"&gt;
&lt;font face="Times New Roman"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font color=#000000&gt;&lt;font size=3&gt;5.&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;font color=#000000 size=3&gt;&lt;a href="http://myweb2.search.yahoo.com"&gt;Yahoo&lt;/a&gt;&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt 1in; TEXT-INDENT: -0.25in; tab-stops: list 1.0in; mso-list: l3 level1 lfo3"&gt;
&lt;font face="Times New Roman"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font color=#000000&gt;&lt;font size=3&gt;6.&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;font color=#000000 size=3&gt;&lt;a href="http://www.blinklist.com/"&gt;Blinklist&lt;/a&gt;&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt 1in; TEXT-INDENT: -0.25in; tab-stops: list 1.0in; mso-list: l3 level1 lfo3"&gt;
&lt;font face="Times New Roman"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font color=#000000&gt;&lt;font size=3&gt;7.&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;font color=#000000 size=3&gt;&lt;a href="http://www.google.com/bookmarks"&gt;Google&lt;/a&gt;&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt 1in; TEXT-INDENT: -0.25in; tab-stops: list 1.0in; mso-list: l3 level1 lfo3"&gt;
&lt;font face="Times New Roman"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font color=#000000&gt;&lt;font size=3&gt;8.&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;font color=#000000 size=3&gt;&lt;a href="http://ma.gnolia.com"&gt;ma.gnolia&lt;/a&gt;&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt 1in; TEXT-INDENT: -0.25in; tab-stops: list 1.0in; mso-list: l3 level1 lfo3"&gt;
&lt;font face="Times New Roman"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font color=#000000&gt;&lt;font size=3&gt;9.&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;font color=#000000 size=3&gt;&lt;a href="http://www.Shadows.com"&gt;Shadows&lt;/a&gt;&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt 1in; TEXT-INDENT: -0.25in; tab-stops: list 1.0in; mso-list: l3 level1 lfo3"&gt;
&lt;font face="Times New Roman"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font color=#000000&gt;&lt;font size=3&gt;10.&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp; &lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;font color=#000000 size=3&gt;&lt;a href="http://www.Technorati.com"&gt;Technorati&lt;/a&gt;&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;o:p&gt;
&lt;font face="Times New Roman" color=#000000 size=3&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font face="Times New Roman" color=#000000 size=3&gt;Ready for a real search engine for
your site? Buy the Pro version &lt;a href="http://www.venexus.com/Store/tabid/1317/CategoryID/2/List/1/Level/a/ProductID/5/Default.aspx"&gt;here&lt;/a&gt;.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font face="Times New Roman" color=#000000 size=3&gt;&lt;/font&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font face="Times New Roman" color=#000000 size=3&gt;Stay tuned for more… &lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;font face="Times New Roman" color=#000000 size=3&gt;&lt;/font&gt;&lt;img width="0" height="0" src="http://dnnblog.venexus.com/aggbug.ashx?id=e59fc87b-8ac5-4111-831c-2b00b5d4b435" /&gt;</description>
      <category>DotNetNuke General;DotNetNuke Modules;DotNetNuke Search;MS SQL Server;Search Engine Optimization</category>
    </item>
    <item>
      <trackback:ping>http://dnnblog.venexus.com/Trackback.aspx?guid=d1dbf8dc-c197-4d2d-9a0b-4442316185b7</trackback:ping>
      <pingback:server>http://dnnblog.venexus.com/pingback.aspx</pingback:server>
      <pingback:target>http://dnnblog.venexus.com/PermaLink,guid,d1dbf8dc-c197-4d2d-9a0b-4442316185b7.aspx</pingback:target>
      <dc:creator>Jeff Smith</dc:creator>
      <title>Venexus Search Engine 1.1 Pro Version Released</title>
      <guid isPermaLink="false">http://dnnblog.venexus.com/PermaLink,guid,d1dbf8dc-c197-4d2d-9a0b-4442316185b7.aspx</guid>
      <link>http://dnnblog.venexus.com/Venexus+Search+Engine+11+Pro+Version+Released.aspx</link>
      <pubDate>Wed, 21 Feb 2007 19:52:51 GMT</pubDate>
      <description>&lt;p&gt;
We released the Pro version of our DNN search engine module today. 
&lt;/p&gt;
&lt;p&gt;
Here is the breakdown of the feature comparison:
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;&lt;font color=#000080 size=3&gt;Venexus Search Engine Version Matrix&lt;/font&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;table cellspacing=0 cellpadding=0 border=1&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;center&gt;&lt;strong&gt;&lt;font face=Verdana color=#000080 size=2&gt;Features&lt;/font&gt;&lt;/strong&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;strong&gt;&lt;font face=Verdana color=#000080 size=2&gt;Standard Version&lt;/font&gt;&lt;/strong&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;strong&gt;&lt;font face=Verdana color=#000080 size=2&gt;Pro Version&lt;/font&gt;&lt;/strong&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td &lt;STRONG&gt;
&lt;font face=Verdana color=#000080 size=1&gt;&lt;strong&gt;Seamus Features&lt;/strong&gt;&lt;/font&gt;&gt; 
&lt;center&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;font face=Verdana color=#000080 size=1&gt;&amp;nbsp;&lt;/font&gt; 
&lt;center&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;font face=Verdana color=#000080 size=1&gt;&amp;nbsp;&lt;/font&gt; 
&lt;center&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td size="1" color="#000080" face="Verdana" &lt;FONT&gt;
&lt;font face=Verdana&gt;&lt;font size=1&gt;&lt;font color=#000080&gt;Maximum # of Pages&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&gt; 
&lt;center&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;500&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Unlimited&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td size="1" color="#000080" face="Verdana" &lt;FONT&gt;
&lt;font face=Verdana&gt;&lt;font size=1&gt;&lt;font color=#000080&gt;Install on commercial site&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&gt; 
&lt;center&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;No&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td size="1" color="#000080" face="Verdana" &lt;FONT&gt;
&lt;font face=Verdana&gt;&lt;font size=1&gt;&lt;font color=#000080&gt;Scheduled Index Updates&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&gt; 
&lt;center&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td size="1" color="#000080" face="Verdana" &lt;FONT&gt;
&lt;font face=Verdana&gt;&lt;font size=1&gt;&lt;font color=#000080&gt;Announcements Module Support&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&gt; 
&lt;center&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td size="1" color="#000080" face="Verdana" &lt;FONT&gt;
&lt;font face=Verdana&gt;&lt;font size=1&gt;&lt;font color=#000080&gt;Contacts Module Support&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&gt; 
&lt;center&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td size="1" color="#000080" face="Verdana" &lt;FONT&gt;
&lt;font face=Verdana&gt;&lt;font size=1&gt;&lt;font color=#000080&gt;Events Module Support&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&gt; 
&lt;center&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td size="1" color="#000080" face="Verdana" &lt;FONT&gt;
&lt;font face=Verdana&gt;&lt;font size=1&gt;&lt;font color=#000080&gt;FAQ Module Support&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&gt; 
&lt;center&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td size="1" color="#000080" face="Verdana" &lt;FONT&gt;
&lt;font face=Verdana&gt;&lt;font size=1&gt;&lt;font color=#000080&gt;Links Module Support&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&gt; 
&lt;center&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="mso-yfti-irow: 9"&gt;
&lt;td size="1" color="#000080" face="Verdana" &lt;FONT&gt;
&lt;font face=Verdana&gt;&lt;font size=1&gt;&lt;font color=#000080&gt;Text/HTML Module Support&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&gt; 
&lt;center&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="mso-yfti-irow: 10"&gt;
&lt;td size="1" color="#000080" face="Verdana" &lt;FONT&gt;
&lt;font face=Verdana&gt;&lt;font size=1&gt;&lt;font color=#000080&gt;Allows users to add feeds&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&gt; 
&lt;center&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;No&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="mso-yfti-irow: 11"&gt;
&lt;td size="1" color="#000080" face="Verdana" &lt;FONT&gt;
&lt;font face=Verdana&gt;&lt;font size=1&gt;&lt;font color=#000080&gt;Custom User Agent&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&gt; 
&lt;center&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;No&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="mso-yfti-irow: 12"&gt;
&lt;td size="1" color="#000080" face="Verdana" &lt;FONT&gt;
&lt;font face=Verdana&gt;&lt;font size=1&gt;&lt;font color=#000080&gt;Obeys Robots.txt&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&gt; 
&lt;center&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="mso-yfti-irow: 13"&gt;
&lt;td size="1" color="#000080" face="Verdana" &lt;FONT&gt;
&lt;font face=Verdana&gt;&lt;font size=1&gt;&lt;font color=#000080&gt;TTL Support&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&gt; 
&lt;center&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="mso-yfti-irow: 14"&gt;
&lt;td size="1" color="#000080" face="Verdana" &lt;FONT&gt;
&lt;font face=Verdana&gt;&lt;font size=1&gt;&lt;font color=#000080&gt;Feed Aggregation Using AJAX&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&gt; 
&lt;center&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="mso-yfti-irow: 15"&gt;
&lt;td size="1" color="#000080" face="Verdana" &lt;FONT&gt;
&lt;font face=Verdana&gt;&lt;font size=1&gt;&lt;font color=#000080&gt;Display Top X Latest Items&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&gt; 
&lt;center&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="mso-yfti-irow: 16"&gt;
&lt;td size="1" color="#000080" face="Verdana" &lt;FONT&gt;
&lt;font face=Verdana&gt;&lt;font size=1&gt;&lt;font color=#000080&gt;XSLT Support&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&gt; 
&lt;center&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="mso-yfti-irow: 17"&gt;
&lt;td size="1" color="#000080" face="Verdana" &lt;FONT&gt;
&lt;font face=Verdana&gt;&lt;font size=1&gt;&lt;font color=#000080&gt;Latest Items RSS Feed Generation&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&gt; 
&lt;center&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="mso-yfti-irow: 18"&gt;
&lt;td size="1" color="#000080" face="Verdana" &lt;FONT&gt;
&lt;font face=Verdana&gt;&lt;font size=1&gt;&lt;font color=#000080&gt;Portal Specific Feed&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&gt; 
&lt;center&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="mso-yfti-irow: 19"&gt;
&lt;td size="1" color="#000080" face="Verdana" &lt;FONT&gt;
&lt;font face=Verdana&gt;&lt;font size=1&gt;&lt;font color=#000080&gt;Enclosure/Podcast Support&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&gt; 
&lt;center&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;No&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="mso-yfti-irow: 20"&gt;
&lt;td size="1" color="#000080" face="Verdana" &lt;FONT&gt;
&lt;font face=Verdana&gt;&lt;font size=1&gt;&lt;font color=#000080&gt;Pinging Service&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&gt; 
&lt;center&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;No&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="mso-yfti-irow: 21"&gt;
&lt;td size="1" color="#000080" face="Verdana" &lt;FONT&gt;
&gt;&lt;font face=Verdana color=#000080 size=1&gt;&amp;nbsp;&lt;/font&gt; 
&lt;center&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;font face=Verdana color=#000080 size=1&gt;&amp;nbsp;&lt;/font&gt; 
&lt;center&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;font face=Verdana color=#000080 size=1&gt;&amp;nbsp;&lt;/font&gt; 
&lt;center&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="mso-yfti-irow: 22"&gt;
&lt;td &lt;STRONG&gt;
&lt;font face=Verdana color=#000080 size=1&gt;&lt;strong&gt;Search Features&lt;/strong&gt;&lt;/font&gt;&gt; 
&lt;center&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;font face=Verdana color=#000080 size=1&gt;&amp;nbsp;&lt;/font&gt; 
&lt;center&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;font face=Verdana color=#000080 size=1&gt;&amp;nbsp;&lt;/font&gt; 
&lt;center&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="mso-yfti-irow: 23"&gt;
&lt;td size="1" color="#000080" face="Verdana" &lt;FONT&gt;
&lt;font face=Verdana&gt;&lt;font size=1&gt;&lt;font color=#000080&gt;Search Skin Object&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&gt; 
&lt;center&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="mso-yfti-irow: 24"&gt;
&lt;td size="1" color="#000080" face="Verdana" &lt;FONT&gt;
&lt;font face=Verdana&gt;&lt;font size=1&gt;&lt;font color=#000080&gt;Use Image or Text for Search button&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&gt; 
&lt;center&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="mso-yfti-irow: 25"&gt;
&lt;td size="1" color="#000080" face="Verdana" &lt;FONT&gt;
&lt;font face=Verdana&gt;&lt;font size=1&gt;&lt;font color=#000080&gt;+ and - (AND and OR) Support&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&gt; 
&lt;center&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="mso-yfti-irow: 26"&gt;
&lt;td size="1" color="#000080" face="Verdana" &lt;FONT&gt;
&lt;font face=Verdana&gt;&lt;font size=1&gt;&lt;font color=#000080&gt;Quoted Search Support&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&gt; 
&lt;center&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="mso-yfti-irow: 27"&gt;
&lt;td size="1" color="#000080" face="Verdana" &lt;FONT&gt;
&lt;font face=Verdana&gt;&lt;font size=1&gt;&lt;font color=#000080&gt;Keyword Highlighting&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&gt; 
&lt;center&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="mso-yfti-irow: 28"&gt;
&lt;td size="1" color="#000080" face="Verdana" &lt;FONT&gt;
&lt;font face=Verdana&gt;&lt;font size=1&gt;&lt;font color=#000080&gt;Obeys DNN Security&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&gt; 
&lt;center&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="mso-yfti-irow: 29"&gt;
&lt;td size="1" color="#000080" face="Verdana" &lt;FONT&gt;
&gt;&lt;font face=Verdana color=#000080 size=1&gt;&amp;nbsp;&lt;/font&gt; 
&lt;center&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;font face=Verdana color=#000080 size=1&gt;&amp;nbsp;&lt;/font&gt; 
&lt;center&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;font face=Verdana color=#000080 size=1&gt;&amp;nbsp;&lt;/font&gt; 
&lt;center&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="mso-yfti-irow: 30"&gt;
&lt;td &lt;STRONG&gt;
&lt;font face=Verdana color=#000080 size=1&gt;&lt;strong&gt;Support&lt;/strong&gt;&lt;/font&gt;&gt; 
&lt;center&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;font face=Verdana color=#000080 size=1&gt;&amp;nbsp;&lt;/font&gt; 
&lt;center&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;font face=Verdana color=#000080 size=1&gt;&amp;nbsp;&lt;/font&gt; 
&lt;center&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="mso-yfti-irow: 31"&gt;
&lt;td size="1" color="#000080" face="Verdana" &lt;FONT&gt;
&lt;font face=Verdana&gt;&lt;font size=1&gt;&lt;font color=#000080&gt;Issue Tracker&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&gt; 
&lt;center&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="mso-yfti-irow: 32"&gt;
&lt;td size="1" color="#000080" face="Verdana" &lt;FONT&gt;
&lt;font face=Verdana&gt;&lt;font size=1&gt;&lt;font color=#000080&gt;Email&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&gt; 
&lt;center&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;No&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;Yes&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="mso-yfti-irow: 33"&gt;
&lt;td size="1" color="#000080" face="Verdana" &lt;FONT&gt;
&lt;font face=Verdana&gt;&lt;font size=1&gt;&lt;font color=#000080&gt;Phone &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&gt; 
&lt;center&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;No&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=1&gt;1 Call&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="mso-yfti-irow: 34"&gt;
&lt;td &lt;STRONG&gt;
&lt;font face=Verdana&gt;&lt;/font&gt;&gt;&lt;font color=#000080&gt;&amp;nbsp;&lt;/font&gt; 
&lt;center&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;font face=Verdana&gt;&lt;/font&gt;&lt;font color=#000080&gt;&amp;nbsp;&lt;/font&gt; 
&lt;center&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;font face=Verdana&gt;&lt;/font&gt;&lt;font color=#000080&gt;&amp;nbsp;&lt;/font&gt; 
&lt;center&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="mso-yfti-irow: 35; mso-yfti-lastrow: yes"&gt;
&lt;td &lt;STRONG&gt;
&lt;font face=Verdana color=#000080 size=2&gt;&lt;strong&gt;Price&lt;/strong&gt;&lt;/font&gt;&gt; 
&lt;center&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=2&gt;&lt;strong&gt;Free&lt;/strong&gt;&lt;/font&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;center&gt;&lt;font face=Verdana color=#000080 size=2&gt;&lt;strong&gt;$199 Per Year&lt;/strong&gt;&lt;/font&gt;
&lt;/center&gt;
&lt;center&gt;&lt;a href="http://www.venexus.com/Store/tabid/1317/CategoryID/2/List/1/Level/a/ProductID/5/Default.aspx"&gt;&lt;img height=31 alt=BuyNowButton.gif src="http://www.venexus.com/Portals/0/BuyNowButton.gif" width=103 border=0&gt;&lt;/a&gt;
&lt;/center&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;
&lt;font face=Verdana&gt;&lt;/font&gt;&lt;font color=#000080&gt;&lt;/font&gt; 
&lt;/p&gt;
&lt;p&gt;
I will be discussing the features of the Pro version in a later post. Stay tuned...&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://dnnblog.venexus.com/aggbug.ashx?id=d1dbf8dc-c197-4d2d-9a0b-4442316185b7" /&gt;</description>
      <category>DotNetNuke General;DotNetNuke Modules;DotNetNuke Search;MS SQL Server;Search Engine Optimization</category>
    </item>
    <item>
      <trackback:ping>http://dnnblog.venexus.com/Trackback.aspx?guid=6940f02a-6898-4ec1-acee-8b6a3ec7482d</trackback:ping>
      <pingback:server>http://dnnblog.venexus.com/pingback.aspx</pingback:server>
      <pingback:target>http://dnnblog.venexus.com/PermaLink,guid,6940f02a-6898-4ec1-acee-8b6a3ec7482d.aspx</pingback:target>
      <dc:creator>Jeff Smith</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <img src="http://dnnblog.venexus.com/content/binary/venexus-search-engine.gif" align="right" border="0" />We
have released the new version of the <a href="http://www.venexus.com/Services/DotNetNuke/DotNetNukeSearch/tabid/1280/Default.aspx">Venexus
Search Engine</a>. <a href="http://www.venexus.com/LinkClick.aspx?fileticket=1oUQPqOUOYA%3d&amp;tabid=1280&amp;mid=3030">VSE Standard
Version 1.1.0</a> has several bug fixes and shows some of the new features of
the Pro version.
</p>
        <p>
New standard features and bug fixes:
</p>
        <ul>
          <li>
VenexusSeamus - Changed TransformXSL to not create a temporary XML file 
</li>
          <li>
VenexusSeamus - Modified Response.Charset 
</li>
          <li>
VenexusSeamus - New Delete Tabs routine for removing deleted and expired tabs 
</li>
          <li>
VenexusSeamus - Ability to reload default XSLT file 
</li>
          <li>
VenexusSeamus - Shows total number of aggregated items 
</li>
          <li>
VenexusSeamus - Gridview pagination 
</li>
          <li>
VenexusSeamus - Link from Grid to show aggregation errors 
</li>
          <li>
VenexusSeamus - Guid attribute added 
</li>
          <li>
VenexusSeamus - application/rss+xml support 
</li>
          <li>
VenexusSeamus - Automatic creation of fulltext index during installation (works for
SQL Server Express too!) 
</li>
          <li>
VenexusSearch - Support for DNN 4.4.1 and "search" URL parameter 
</li>
          <li>
VenexusSearch - Non-authenticated postback issue resolved 
</li>
          <li>
VenexusSearch - Limits URL length for display 
</li>
          <li>
VenexusSearch - Quoted query support</li>
        </ul>
        <p>
If you have any issues with installation, configuration, or bugs, pleas post them
in our <a href="http://issues.venexus.com">issue tracker</a>.
</p>
        <img width="0" height="0" src="http://dnnblog.venexus.com/aggbug.ashx?id=6940f02a-6898-4ec1-acee-8b6a3ec7482d" />
      </body>
      <title>Venexus Search Engine 1.1 Standard</title>
      <guid isPermaLink="false">http://dnnblog.venexus.com/PermaLink,guid,6940f02a-6898-4ec1-acee-8b6a3ec7482d.aspx</guid>
      <link>http://dnnblog.venexus.com/Venexus+Search+Engine+11+Standard.aspx</link>
      <pubDate>Mon, 19 Feb 2007 22:17:05 GMT</pubDate>
      <description>&lt;p&gt;
&lt;img src="http://dnnblog.venexus.com/content/binary/venexus-search-engine.gif" align=right border=0&gt;We
have released the new version of the &lt;a href="http://www.venexus.com/Services/DotNetNuke/DotNetNukeSearch/tabid/1280/Default.aspx"&gt;Venexus
Search Engine&lt;/a&gt;.&amp;nbsp;&lt;a href="http://www.venexus.com/LinkClick.aspx?fileticket=1oUQPqOUOYA%3d&amp;amp;tabid=1280&amp;amp;mid=3030"&gt;VSE&amp;nbsp;Standard
Version 1.1.0&lt;/a&gt;&amp;nbsp;has several bug fixes and shows some of the new features of
the Pro version.
&lt;/p&gt;
&lt;p&gt;
New standard&amp;nbsp;features and bug fixes:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
VenexusSeamus - Changed TransformXSL to not create a temporary XML file 
&lt;li&gt;
VenexusSeamus - Modified Response.Charset 
&lt;li&gt;
VenexusSeamus - New Delete Tabs routine for removing deleted and expired tabs 
&lt;li&gt;
VenexusSeamus - Ability to reload default XSLT file 
&lt;li&gt;
VenexusSeamus - Shows total number of aggregated items 
&lt;li&gt;
VenexusSeamus - Gridview pagination 
&lt;li&gt;
VenexusSeamus - Link from Grid to show aggregation errors 
&lt;li&gt;
VenexusSeamus - Guid attribute added 
&lt;li&gt;
VenexusSeamus - application/rss+xml support 
&lt;li&gt;
VenexusSeamus - Automatic creation of fulltext index during installation (works for
SQL Server Express too!) 
&lt;li&gt;
VenexusSearch - Support for DNN 4.4.1 and "search" URL parameter 
&lt;li&gt;
VenexusSearch - Non-authenticated postback issue resolved 
&lt;li&gt;
VenexusSearch - Limits URL length for display 
&lt;li&gt;
VenexusSearch - Quoted query support&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
If you have any issues with installation, configuration, or bugs, pleas post them
in our &lt;a href="http://issues.venexus.com"&gt;issue tracker&lt;/a&gt;.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://dnnblog.venexus.com/aggbug.ashx?id=6940f02a-6898-4ec1-acee-8b6a3ec7482d" /&gt;</description>
      <category>DotNetNuke General;DotNetNuke Modules;DotNetNuke Search;MS SQL Server;Search Engine Optimization</category>
    </item>
    <item>
      <trackback:ping>http://dnnblog.venexus.com/Trackback.aspx?guid=1d0ade20-fb91-4f85-9893-ee746633860d</trackback:ping>
      <pingback:server>http://dnnblog.venexus.com/pingback.aspx</pingback:server>
      <pingback:target>http://dnnblog.venexus.com/PermaLink,guid,1d0ade20-fb91-4f85-9893-ee746633860d.aspx</pingback:target>
      <dc:creator>Jeff Smith</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Here is a <a href="http://download.microsoft.com/download/b/3/8/b3847275-2bea-440a-8e2e-305b009bb261/sql_13.wmv">video
tutorial on setting up SQL Server 2005 Express and Full-Text Indexing</a>. It breaks
down the steps for installation of SQL Server Express with Advanced Services. This
is a great video that shows alot more than just setting up full-text indexing. It
also shows some basic queries. 
</p>
        <p>
Key points of interest during installation is when you get to the Registration Information
screen, uncheck "Hide advanced configuration options" before clicking Next. Then in
the next screen, expand Database Services and select the option to add "entire feature
will be installed on local hard drive" for Full-Text Search. After a few more steps,
you must uncheck User Instances Enabled. For those who already have Full-Text Search
installed, but did not uncheck that option, you can use the following SQL:
</p>
        <p>
sp_configure 'user instances enabled', '0'
</p>
        <p>
If you are using SQL Server Express Management Studio Express, you can go into the
database properties and under files, make sure enable full-text indexing is checked.
Or, run the following SQL:
</p>
        <font color="#800000" size="2">
          <p>
sp_fulltext_database
</p>
        </font>
        <font color="#000000" size="2">
        </font>
        <font color="#ff0000" size="2">'enable'
<p></p></font>Now for creating the catalog and index. The example below is for our search
engine module:
<font color="#0000ff" size="2"><p>
Create
</p></font><font color="#000000" size="2"></font><font color="#0000ff" size="2">fulltext</font><font color="#000000" size="2"></font><font color="#0000ff" size="2">catalog</font><font size="2"><font color="#000000"> VenexusSearchCatalog</font></font><p><font color="#0000ff" size="2">Create</font><font color="#000000" size="2"></font><font color="#0000ff" size="2">Unique</font><font color="#000000" size="2"></font><font color="#0000ff" size="2">Index</font><font color="#000000" size="2"> PKVenexusSearchEngine </font><font color="#0000ff" size="2">On</font><font color="#000000" size="2"> Venexus_BrainDump</font><font color="#808080" size="2">(</font><font color="#000000" size="2">IndexID</font><font color="#808080" size="2">)</font></p><p><font color="#0000ff" size="2">Create</font><font color="#000000" size="2"></font><font color="#0000ff" size="2">fulltext</font><font color="#000000" size="2"></font><font color="#0000ff" size="2">index</font><font color="#000000" size="2"></font><font color="#0000ff" size="2">On</font><font color="#000000" size="2"> Venexus_BrainDump </font><font color="#808080" size="2">(</font><font color="#000000" size="2">IndexURL</font><font color="#808080" size="2">,</font><font color="#000000" size="2"> IndexTitle</font><font color="#808080" size="2">,</font><font color="#000000" size="2"> IndexWashedContent</font><font color="#808080" size="2">)</font><br /><font color="#0000ff" size="2">Key</font><font color="#000000" size="2"></font><font color="#0000ff" size="2">Index</font><font color="#000000" size="2"> PKVenexusSearchEngine </font><font color="#0000ff" size="2">On</font><font size="2"><font color="#000000"> VenexusSearchCatalog</font></font><br /><font color="#0000ff" size="2">With</font><font color="#000000" size="2"></font><font color="#0000ff" size="2">Change_Tracking</font><font color="#000000" size="2"></font><font color="#0000ff" size="2">Auto
</font></p><p><br />
 
</p><img width="0" height="0" src="http://dnnblog.venexus.com/aggbug.ashx?id=1d0ade20-fb91-4f85-9893-ee746633860d" /></body>
      <title>SQL Server 2005 Express and Full-Text Indexing</title>
      <guid isPermaLink="false">http://dnnblog.venexus.com/PermaLink,guid,1d0ade20-fb91-4f85-9893-ee746633860d.aspx</guid>
      <link>http://dnnblog.venexus.com/SQL+Server+2005+Express+And+FullText+Indexing.aspx</link>
      <pubDate>Wed, 14 Feb 2007 07:25:21 GMT</pubDate>
      <description>&lt;p&gt;
Here is a &lt;a href="http://download.microsoft.com/download/b/3/8/b3847275-2bea-440a-8e2e-305b009bb261/sql_13.wmv"&gt;video
tutorial on setting up SQL Server 2005 Express and Full-Text Indexing&lt;/a&gt;. It breaks
down the steps for installation of SQL Server Express with Advanced Services. This
is a great video that shows alot more than just setting up full-text indexing. It
also shows some basic queries. 
&lt;/p&gt;
&lt;p&gt;
Key points of interest during installation is when you get to the Registration Information
screen, uncheck "Hide advanced configuration options" before clicking Next. Then in
the next screen, expand Database Services and select the option to add "entire feature
will be installed on local hard drive" for Full-Text Search. After a few more steps,
you must uncheck User Instances Enabled. For those who already have Full-Text Search
installed, but did not uncheck that option, you can use the following SQL:
&lt;/p&gt;
&lt;p&gt;
sp_configure 'user instances enabled', '0'
&lt;/p&gt;
&lt;p&gt;
If you are using SQL Server Express Management Studio Express, you can go into the
database properties and under files, make sure enable full-text indexing is checked.
Or, run the following SQL:
&lt;/p&gt;
&lt;font color=#800000 size=2&gt; 
&lt;p&gt;
sp_fulltext_database
&lt;/font&gt;&lt;font color=#000000 size=2&gt; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;'enable'&gt;
&lt;p&gt;
&lt;/font&gt;Now for creating the catalog and index. The example below is for our search
engine module:&gt;
&lt;font color=#0000ff size=2&gt; 
&lt;p&gt;
Create
&lt;/font&gt;&lt;font color=#000000 size=2&gt; &lt;/font&gt;&lt;font color=#0000ff size=2&gt;fulltext&lt;/font&gt;&lt;font color=#000000 size=2&gt; &lt;/font&gt;&lt;font color=#0000ff size=2&gt;catalog&lt;/font&gt;&lt;font size=2&gt;&lt;font color=#000000&gt; VenexusSearchCatalog&lt;/font&gt;&lt;/font&gt;&gt;
&lt;p&gt;
&lt;font color=#0000ff size=2&gt;Create&lt;/font&gt;&lt;font color=#000000 size=2&gt; &lt;/font&gt;&lt;font color=#0000ff size=2&gt;Unique&lt;/font&gt;&lt;font color=#000000 size=2&gt; &lt;/font&gt;&lt;font color=#0000ff size=2&gt;Index&lt;/font&gt;&lt;font color=#000000 size=2&gt; PKVenexusSearchEngine &lt;/font&gt;&lt;font color=#0000ff size=2&gt;On&lt;/font&gt;&lt;font color=#000000 size=2&gt; Venexus_BrainDump&lt;/font&gt;&lt;font color=#808080 size=2&gt;(&lt;/font&gt;&lt;font color=#000000 size=2&gt;IndexID&lt;/font&gt;&lt;font color=#808080 size=2&gt;)&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#0000ff size=2&gt;Create&lt;/font&gt;&lt;font color=#000000 size=2&gt; &lt;/font&gt;&lt;font color=#0000ff size=2&gt;fulltext&lt;/font&gt;&lt;font color=#000000 size=2&gt; &lt;/font&gt;&lt;font color=#0000ff size=2&gt;index&lt;/font&gt;&lt;font color=#000000 size=2&gt; &lt;/font&gt;&lt;font color=#0000ff size=2&gt;On&lt;/font&gt;&lt;font color=#000000 size=2&gt; Venexus_BrainDump &lt;/font&gt;&lt;font color=#808080 size=2&gt;(&lt;/font&gt;&lt;font color=#000000 size=2&gt;IndexURL&lt;/font&gt;&lt;font color=#808080 size=2&gt;,&lt;/font&gt;&lt;font color=#000000 size=2&gt; IndexTitle&lt;/font&gt;&lt;font color=#808080 size=2&gt;,&lt;/font&gt;&lt;font color=#000000 size=2&gt; IndexWashedContent&lt;/font&gt;&lt;font color=#808080 size=2&gt;)&lt;/font&gt; 
&lt;br&gt;
&lt;font color=#0000ff size=2&gt;Key&lt;/font&gt;&lt;font color=#000000 size=2&gt; &lt;/font&gt;&lt;font color=#0000ff size=2&gt;Index&lt;/font&gt;&lt;font color=#000000 size=2&gt; PKVenexusSearchEngine &lt;/font&gt;&lt;font color=#0000ff size=2&gt;On&lt;/font&gt;&lt;font size=2&gt;&lt;font color=#000000&gt; VenexusSearchCatalog&lt;/font&gt;&lt;/font&gt;
&lt;br&gt;
&lt;font color=#0000ff size=2&gt;With&lt;/font&gt;&lt;font color=#000000 size=2&gt; &lt;/font&gt;&lt;font color=#0000ff size=2&gt;Change_Tracking&lt;/font&gt;&lt;font color=#000000 size=2&gt; &lt;/font&gt;&lt;font color=#0000ff size=2&gt;Auto
&lt;/p&gt;
&lt;p&gt;
&gt;
&lt;br&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://dnnblog.venexus.com/aggbug.ashx?id=1d0ade20-fb91-4f85-9893-ee746633860d" /&gt;</description>
      <category>DotNetNuke Search;MS SQL Server</category>
    </item>
    <item>
      <trackback:ping>http://dnnblog.venexus.com/Trackback.aspx?guid=6e1313c1-0a7c-45ae-a31a-1687d1eba655</trackback:ping>
      <pingback:server>http://dnnblog.venexus.com/pingback.aspx</pingback:server>
      <pingback:target>http://dnnblog.venexus.com/PermaLink,guid,6e1313c1-0a7c-45ae-a31a-1687d1eba655.aspx</pingback:target>
      <dc:creator>Jeff Smith</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
The first beta testers of the <a href="http://www.venexus.com/Services/DotNetNuke/DotNetNukeSearch/tabid/1280/Default.aspx">Venexus
Search Engine</a> were the guys from <a href="http://www.truelawyers.com">True
Lawyers</a>. They created a new portal in their DNN installation for <a href="http://search.truelawyers.com">Search.TrueLawyers.com</a>.
Search.TrueLawyers.com is a legal search engine. <a id="dnn_dnnLOGO_hypLogo" title="True Lawyers Legal Search Engine" href="http://search.truelawyers.com/"><img id="dnn_dnnLOGO_imgLogo" style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" alt="True Lawyers Legal Search Engine" src="http://search.truelawyers.com/Portals/1/Logo/True-Lawyers-Legal-Search-Engine-Logo-small.jpg" align="left" /></a> Their
instance of VSE has aggregated <strong>over 216,000 legal articles, news, and related
site pages</strong> as of this morning. You can test this site and see that the
speed of VSE is still great when considering the amount of data it has already indexed.
When using the site, each time a page is loaded that has <a href="http://www.venexus.com/Services/DotNetNuke/DotNetNukeSearch/Seamus/tabid/1286/Default.aspx">Seamus</a> on
it (and Seamus CAN be hidden on the page), 5 feeds are aggregated. Any new items in
the feeds are added to the index immediately. While the user sits on the page, AJAX
is used to pull more feeds. Plus, since the site is new and does not have much traffic...yet,
they use a RSS reader to call the <a href="http://search.truelawyers.com/DesktopModules/VenexusSeamus/SeamusImage.aspx?RSS=1&amp;Fetch=1">Seamus
RSS feed</a>, which grabs more data every 10 to 15 minutes. As you can imagine, their
index is growing FAST! You can see the latest items Seamus has aggregated by visiting
the <a href="http://search.truelawyers.com/LegalNews/tabid/233/Default.aspx">True
Lawyers Legal News Room</a>.
</p>
        <p>
So, not only does VSE work as a site search engine and multiple portal search
engine, it also works as a full blown search engine, aggregating items from your DNN
installation, as well as other sites that provides RSS feeds. One of the features
we are working on for the 1.1 Pro version is the ability to index any website, regardless
of having a RSS feed. You can now have the ability to build powerful niche websites
that provide your users with lots of relevant information.  Plus, with the RSS
feed Seamus generates, you can set it to display items for only your website, allowing
you to submit the link to many feed directories, providing search engine optimization.
The 1.1 Pro version will ping many blog directories, greatly increasing traffic to
your website, treating your entire website like a blog. And we all know that the other
search engines are just eating up blog content, increasing the page rank of those
sites over many traditional websites without feeds. Ready to try it out? You can download
the release candidate <a href="http://www.venexus.com/Services/DotNetNuke/DotNetNukeSearch/tabid/1280/Default.aspx">here</a>.
</p>
        <p>
Stay tuned for more...
</p>
        <p>
          <strong>
            <font color="#ff0000">UPDATE 2/7/2007:</font>
          </strong>
        </p>
        <p>
I just checked the total items indexed for this site again and it is now showing
over 246,0000 items. So in 2 weeks, an extra 30k + items were indexed. 
</p>
        <img width="0" height="0" src="http://dnnblog.venexus.com/aggbug.ashx?id=6e1313c1-0a7c-45ae-a31a-1687d1eba655" />
      </body>
      <title>Legal Search Engine Using Venexus Search Engine Modules</title>
      <guid isPermaLink="false">http://dnnblog.venexus.com/PermaLink,guid,6e1313c1-0a7c-45ae-a31a-1687d1eba655.aspx</guid>
      <link>http://dnnblog.venexus.com/Legal+Search+Engine+Using+Venexus+Search+Engine+Modules.aspx</link>
      <pubDate>Wed, 24 Jan 2007 14:44:34 GMT</pubDate>
      <description>&lt;p&gt;
The first beta testers of the &lt;a href="http://www.venexus.com/Services/DotNetNuke/DotNetNukeSearch/tabid/1280/Default.aspx"&gt;Venexus
Search Engine&lt;/a&gt;&amp;nbsp;were the guys from &lt;a href="http://www.truelawyers.com"&gt;True
Lawyers&lt;/a&gt;. They created a new portal in their DNN installation for &lt;a href="http://search.truelawyers.com"&gt;Search.TrueLawyers.com&lt;/a&gt;.
Search.TrueLawyers.com is a legal search engine. &lt;a id=dnn_dnnLOGO_hypLogo title="True Lawyers Legal Search Engine" href="http://search.truelawyers.com/"&gt;&lt;img id=dnn_dnnLOGO_imgLogo style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" alt="True Lawyers Legal Search Engine" src="http://search.truelawyers.com/Portals/1/Logo/True-Lawyers-Legal-Search-Engine-Logo-small.jpg" align=left&gt;&lt;/a&gt; Their
instance of VSE has aggregated &lt;strong&gt;over 216,000 legal articles, news, and related
site pages&lt;/strong&gt; as of this morning.&amp;nbsp;You can test this site and see that the
speed of VSE is still great when considering the amount of data it has already indexed.
When using the site, each time a page is loaded that has &lt;a href="http://www.venexus.com/Services/DotNetNuke/DotNetNukeSearch/Seamus/tabid/1286/Default.aspx"&gt;Seamus&lt;/a&gt;&amp;nbsp;on
it (and Seamus CAN be hidden on the page), 5 feeds are aggregated. Any new items in
the feeds are added to the index immediately. While the user sits on the page, AJAX
is used to pull more feeds. Plus, since the site is new and does not have much traffic...yet,
they use a&amp;nbsp;RSS reader&amp;nbsp;to call the &lt;a href="http://search.truelawyers.com/DesktopModules/VenexusSeamus/SeamusImage.aspx?RSS=1&amp;amp;Fetch=1"&gt;Seamus
RSS feed&lt;/a&gt;, which grabs more data every 10 to 15 minutes. As you can imagine, their
index is growing FAST! You can see the latest items Seamus has aggregated by visiting
the &lt;a href="http://search.truelawyers.com/LegalNews/tabid/233/Default.aspx"&gt;True
Lawyers Legal News Room&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
So, not only does VSE work as a site search engine and&amp;nbsp;multiple portal search
engine, it also works as a full blown search engine, aggregating items from your DNN
installation, as well as other sites that provides RSS feeds. One of the features
we are working on for the 1.1 Pro version is the ability to index any website, regardless
of having a RSS feed. You can now have the ability to build powerful niche websites
that provide your users with lots of relevant information.&amp;nbsp; Plus, with the RSS
feed Seamus generates, you can set it to display items for only your website, allowing
you to submit the link to many feed directories, providing search engine optimization.
The 1.1 Pro version will ping many blog directories, greatly increasing traffic to
your website, treating your entire website like a blog. And we all know that the other
search engines are just eating up blog content, increasing the page rank of those
sites over many traditional websites without feeds. Ready to try it out? You can download
the release candidate &lt;a href="http://www.venexus.com/Services/DotNetNuke/DotNetNukeSearch/tabid/1280/Default.aspx"&gt;here&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
Stay tuned for more...
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;&lt;font color=#ff0000&gt;UPDATE 2/7/2007:&lt;/font&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
I just checked the total items indexed for this site&amp;nbsp;again and it is now showing
over 246,0000 items. So in 2 weeks, an extra 30k + items were indexed. 
&lt;/p&gt;
&lt;img width="0" height="0" src="http://dnnblog.venexus.com/aggbug.ashx?id=6e1313c1-0a7c-45ae-a31a-1687d1eba655" /&gt;</description>
      <category>DotNetNuke General;DotNetNuke Modules;DotNetNuke Search;MS SQL Server;Search Engine Optimization</category>
    </item>
    <item>
      <trackback:ping>http://dnnblog.venexus.com/Trackback.aspx?guid=9f4ce0ca-ea0d-4344-983b-259b4e9499f4</trackback:ping>
      <pingback:server>http://dnnblog.venexus.com/pingback.aspx</pingback:server>
      <pingback:target>http://dnnblog.venexus.com/PermaLink,guid,9f4ce0ca-ea0d-4344-983b-259b4e9499f4.aspx</pingback:target>
      <dc:creator>Jeff Smith</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I know many of you have been patiently waiting for the release of the Venexus Search
Engine. We have had several beta testers try out previous release candidates, and
have several new tweaks in this release. 
</p>
        <p>
          <strong>Seamus Additions:</strong>
        </p>
        <ul>
          <li>
            <div align="left">Web.configless (No changes to web.config needed. Beta Testers should
remove EntitySpaces web.config entries when installing this version)
</div>
          </li>
          <li>
            <div align="left">Object Qualifier support (Thank you Barry White for testing this)
</div>
          </li>
          <li>
            <div align="left">Index current tab (Seamus will index the tab it is on. You can add
make Seamus invisible on the page by showing 0 items in the feed and unchecking Show
Feed. Add to all pages on the site and Seamus will index and update the index when
the page is updated)
</div>
          </li>
          <li>
            <div align="left">Edit Feed Display (Only show feeds selected in Edit Feeds section.
By default, all are show. Selecting feeds will filter news display of only items indexed
from the feeds list)
</div>
          </li>
        </ul>
        <p align="left">
          <strong>Search Additions:</strong>
        </p>
        <ul>
          <li>
            <div align="left">Web.configless
</div>
          </li>
          <li>
            <div align="left">Object Qualifier support
</div>
          </li>
          <li>
            <div align="left">"query" URL parameter (You can now use your existing default DNN
search results page. Simply drop the module on the search results page and remove
the default search results module. Utilize the DNN Search textbox in your skin with
the power of Full-Text Indexing).
</div>
          </li>
          <li>
            <div align="left">Search form skin object support (see <a href="http://www.venexus.com/Services/DotNetNuke/DotNetNukeSearch/SearchInstall/tabid/1283/Default.aspx">instructions</a>)
</div>
          </li>
          <li>
            <div align="left">Form post fix (A fix was added that allows you to simply hit the
enter key after adding your query, rather than forcing you to click on the button)
</div>
          </li>
          <li>
            <div align="left">Allow user selected web or site search (allow your users to select
whether their search is against the current portal or for all search results in the
database)
</div>
          </li>
          <li>
            <div align="left">URL Trim (Used to trim the URL display in the search results. Long
URLs would stretch out the skin)
</div>
          </li>
          <li>
            <div align="left">Search Query (Saves user queries and the number of "hits" for that
query. This will be used in the pro version for "Top Searches" and "Latest Searches".)
</div>
          </li>
        </ul>
        <p>
Here is some information about our <a href="http://www.venexus.com/Services/DotNetNuke/DotNetNukeSearch/tabid/1280/Default.aspx">DotNetNuke
search engine module</a>. You can test it on our site <a href="http://www.venexus.com/tabid/117/default.aspx?query=search+engine&amp;type=web">here</a>.
We also have the latest version loaded on our <a href="http://search.venexus.com">DNN
search site</a> for finding DotNetNuke related pages and sites.
</p>
        <p>
As for the official release, we are waiting on <a href="http://www.flatburger.com">FlatBurger</a> to
fix an issue with their code protection that causes the module to generate an error
after activation. We have been told that this may be fixed by Friday...we will see.
In the meantime, please send us your thoughts on this release candidate. If you find
any bugs, please post them to our <a href="http://issues.venexus.com">issue tracker</a>.
If you have any suggestions for new features, please post them in the <a href="http://issues.venexus.com">issue
tracker</a> or in the <a href="http://www.venexus.com/Support/Forums/tabid/1322/Default.aspx">support
forms</a>.
</p>
        <p>
          <strong>REQUIREMENTS FOR VENEXUS SEARCH ENGINE</strong>
        </p>
        <ul>
          <li>
            <font color="#ff0000">
              <b>DotNetNuke 4.3.5 or Higher (Yes it works with the DNN 4.4
release)</b>
            </font>  
</li>
          <li>
SQL Server supporting Full-Text Indexing 
</li>
          <li>
.Net full trust for EntitySpaces and Reflection usage</li>
        </ul>
        <p>
Now for the files....
</p>
        <p>
Before installing this, you MUST <a href="http://www.venexus.com/Services/DotNetNuke/DotNetNukeSearch/SeamusInstall/tabid/1282/Default.aspx">read
the instructions</a>. You CANNOT just install both modules and expect it to work.
You MUST configure fulltext indexing manually to get this to work. You will find instructions
on performing this action in the <a href="http://www.venexus.com/SearchInstall/tabid/1283/Default.aspx">Search
Instructions and Configuration</a>.
</p>
        <p>
You can <a href="http://www.venexus.com/LinkClick.aspx?fileticket=tghIqRJZ8pk%3d&amp;tabid=1280&amp;mid=3030">download
both modules here</a>. The file is also attached as an enclosure.
</p>
        <p>
Please post your links here in a comment to show everyone how you are using
the Venexus Search Engine.
</p>
        <p>
          <strong>UPDATED:</strong> Link to module downloads has been updated.
</p>
        <img width="0" height="0" src="http://dnnblog.venexus.com/aggbug.ashx?id=9f4ce0ca-ea0d-4344-983b-259b4e9499f4" />
      </body>
      <title>Venexus Search Engine - Release Candidate</title>
      <guid isPermaLink="false">http://dnnblog.venexus.com/PermaLink,guid,9f4ce0ca-ea0d-4344-983b-259b4e9499f4.aspx</guid>
      <link>http://dnnblog.venexus.com/Venexus+Search+Engine+Release+Candidate.aspx</link>
      <pubDate>Sun, 21 Jan 2007 22:40:30 GMT</pubDate>
      <description>&lt;p&gt;
I know many of you have been patiently waiting for the release of the Venexus Search
Engine. We have had several beta testers try out previous release candidates, and
have several new tweaks in this release. 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Seamus Additions:&lt;/strong&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div align=left&gt;Web.configless (No changes to web.config needed. Beta Testers should
remove EntitySpaces web.config entries when installing this version)
&lt;/div&gt;
&lt;li&gt;
&lt;div align=left&gt;Object Qualifier support (Thank you Barry White for testing this)
&lt;/div&gt;
&lt;li&gt;
&lt;div align=left&gt;Index current tab (Seamus will index the tab it is on. You can add
make Seamus invisible on the page by showing 0 items in the feed and unchecking Show
Feed. Add to all pages on the site and Seamus will index and update the index when
the page is updated)
&lt;/div&gt;
&lt;li&gt;
&lt;div align=left&gt;Edit Feed Display (Only show feeds selected in Edit Feeds section.
By default, all are show. Selecting feeds will filter news display of only items indexed
from the feeds list)
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p align=left&gt;
&lt;strong&gt;Search Additions:&lt;/strong&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div align=left&gt;Web.configless
&lt;/div&gt;
&lt;li&gt;
&lt;div align=left&gt;Object Qualifier support
&lt;/div&gt;
&lt;li&gt;
&lt;div align=left&gt;"query" URL parameter (You can now use your existing default DNN search
results page. Simply drop the module on the search results page and remove the default
search results module. Utilize the DNN Search textbox in your skin with the power
of Full-Text Indexing).
&lt;/div&gt;
&lt;li&gt;
&lt;div align=left&gt;Search form skin object support (see &lt;a href="http://www.venexus.com/Services/DotNetNuke/DotNetNukeSearch/SearchInstall/tabid/1283/Default.aspx"&gt;instructions&lt;/a&gt;)
&lt;/div&gt;
&lt;li&gt;
&lt;div align=left&gt;Form post fix (A fix was added that allows you to simply hit the enter
key after adding your query, rather than forcing you to click on the button)
&lt;/div&gt;
&lt;li&gt;
&lt;div align=left&gt;Allow user selected web or site search (allow your users to select
whether their search is against the current portal or for all search results in the
database)
&lt;/div&gt;
&lt;li&gt;
&lt;div align=left&gt;URL Trim (Used to trim the URL display in the search results. Long
URLs would stretch out the skin)
&lt;/div&gt;
&lt;li&gt;
&lt;div align=left&gt;Search Query (Saves user queries and the number of "hits" for that
query. This will be used in the pro version for "Top Searches" and "Latest Searches".)
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Here is some information about our &lt;a href="http://www.venexus.com/Services/DotNetNuke/DotNetNukeSearch/tabid/1280/Default.aspx"&gt;DotNetNuke
search engine module&lt;/a&gt;. You can test it on our site &lt;a href="http://www.venexus.com/tabid/117/default.aspx?query=search+engine&amp;amp;type=web"&gt;here&lt;/a&gt;.
We also have the latest version loaded on our &lt;a href="http://search.venexus.com"&gt;DNN
search site&lt;/a&gt; for finding DotNetNuke related pages and sites.
&lt;/p&gt;
&lt;p&gt;
As for the official release, we are waiting on &lt;a href="http://www.flatburger.com"&gt;FlatBurger&lt;/a&gt;&amp;nbsp;to
fix an issue with their code protection that causes the module to generate an error
after activation. We have been told that this may be fixed by Friday...we will see.
In the meantime, please send us your thoughts on this release candidate. If you find
any bugs, please post them to our &lt;a href="http://issues.venexus.com"&gt;issue tracker&lt;/a&gt;.
If you have any suggestions for new features, please post them in the &lt;a href="http://issues.venexus.com"&gt;issue
tracker&lt;/a&gt; or in the &lt;a href="http://www.venexus.com/Support/Forums/tabid/1322/Default.aspx"&gt;support
forms&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;REQUIREMENTS FOR VENEXUS SEARCH ENGINE&lt;/strong&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;font color=#ff0000&gt;&lt;b&gt;DotNetNuke 4.3.5 or Higher (Yes it works with the DNN 4.4 release)&lt;/b&gt;&lt;/font&gt;&amp;nbsp; 
&lt;li&gt;
SQL Server supporting Full-Text Indexing 
&lt;li&gt;
.Net full trust for EntitySpaces and Reflection usage&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Now for the files....
&lt;/p&gt;
&lt;p&gt;
Before installing this, you MUST &lt;a href="http://www.venexus.com/Services/DotNetNuke/DotNetNukeSearch/SeamusInstall/tabid/1282/Default.aspx"&gt;read
the instructions&lt;/a&gt;. You CANNOT just install both modules and expect it to work.
You MUST configure fulltext indexing manually to get this to work. You will find instructions
on performing this action in the &lt;a href="http://www.venexus.com/SearchInstall/tabid/1283/Default.aspx"&gt;Search
Instructions and Configuration&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
You can &lt;a href="http://www.venexus.com/LinkClick.aspx?fileticket=tghIqRJZ8pk%3d&amp;amp;tabid=1280&amp;amp;mid=3030"&gt;download
both modules here&lt;/a&gt;. The file is also attached as an enclosure.
&lt;/p&gt;
&lt;p&gt;
Please post your links here in a comment&amp;nbsp;to&amp;nbsp;show everyone how you are using
the Venexus Search Engine.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;UPDATED:&lt;/strong&gt; Link to module downloads has been updated.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://dnnblog.venexus.com/aggbug.ashx?id=9f4ce0ca-ea0d-4344-983b-259b4e9499f4" /&gt;</description>
      <category>DotNetNuke General;DotNetNuke Modules;DotNetNuke Search;MS SQL Server;Search Engine Optimization</category>
      <enclosure url="http://dnnblog.venexus.com/content/binary/9f4ce0ca-ea0d-4344-983b-259b4e9499f4/VenexusSearchEngine-v1.1.0-standard.zip" type="application/x-zip-compressed" length="291142" />
    </item>
    <item>
      <trackback:ping>http://dnnblog.venexus.com/Trackback.aspx?guid=5908bce6-6dd4-42c6-8667-172960a00fcf</trackback:ping>
      <pingback:server>http://dnnblog.venexus.com/pingback.aspx</pingback:server>
      <pingback:target>http://dnnblog.venexus.com/PermaLink,guid,5908bce6-6dd4-42c6-8667-172960a00fcf.aspx</pingback:target>
      <dc:creator>Jeff Smith</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
In case you were wondering from my last post, here is how to get a list of all modules
by Portal:
</p>
        <p>
SELECT DISTINCT ModuleDefinitions.ModuleDefID, ModuleDefinitions.FriendlyName, Modules.PortalID<br />
FROM         ModuleDefinitions CROSS JOIN<br />
                     
Modules LEFT OUTER JOIN<br />
                     
Modules AS Modules_1 ON ModuleDefinitions.ModuleDefID = Modules.ModuleDefID<br />
WHERE     (Modules.ModuleDefID IS NOT NULL) ORDER BY Modules.PortalID
</p>
        <p>
Here is how to specify a specific portal in the installation:
</p>
        <p>
SELECT DISTINCT ModuleDefinitions.ModuleDefID, ModuleDefinitions.FriendlyName, Modules.PortalID<br />
FROM         ModuleDefinitions CROSS JOIN<br />
                     
Modules LEFT OUTER JOIN<br />
                     
Modules AS Modules_1 ON ModuleDefinitions.ModuleDefID = Modules.ModuleDefID<br />
WHERE     (Modules.ModuleDefID IS NOT NULL) AND (Modules.PortalID
= 0)
</p>
        <img width="0" height="0" src="http://dnnblog.venexus.com/aggbug.ashx?id=5908bce6-6dd4-42c6-8667-172960a00fcf" />
      </body>
      <title>Which Modules Are Being Used by Portal?</title>
      <guid isPermaLink="false">http://dnnblog.venexus.com/PermaLink,guid,5908bce6-6dd4-42c6-8667-172960a00fcf.aspx</guid>
      <link>http://dnnblog.venexus.com/Which+Modules+Are+Being+Used+By+Portal.aspx</link>
      <pubDate>Sun, 03 Dec 2006 06:00:06 GMT</pubDate>
      <description>&lt;p&gt;
In case you were wondering from my last post, here is how to get a list of all modules
by Portal:
&lt;/p&gt;
&lt;p&gt;
SELECT DISTINCT ModuleDefinitions.ModuleDefID, ModuleDefinitions.FriendlyName, Modules.PortalID&lt;br&gt;
FROM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ModuleDefinitions CROSS JOIN&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
Modules LEFT OUTER JOIN&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
Modules AS Modules_1 ON ModuleDefinitions.ModuleDefID = Modules.ModuleDefID&lt;br&gt;
WHERE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (Modules.ModuleDefID IS NOT NULL) ORDER BY Modules.PortalID
&lt;/p&gt;
&lt;p&gt;
Here is how to specify a specific portal in the installation:
&lt;/p&gt;
&lt;p&gt;
SELECT DISTINCT ModuleDefinitions.ModuleDefID, ModuleDefinitions.FriendlyName, Modules.PortalID&lt;br&gt;
FROM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ModuleDefinitions CROSS JOIN&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
Modules LEFT OUTER JOIN&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
Modules AS Modules_1 ON ModuleDefinitions.ModuleDefID = Modules.ModuleDefID&lt;br&gt;
WHERE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (Modules.ModuleDefID IS NOT NULL) AND (Modules.PortalID
= 0)
&lt;/p&gt;
&lt;img width="0" height="0" src="http://dnnblog.venexus.com/aggbug.ashx?id=5908bce6-6dd4-42c6-8667-172960a00fcf" /&gt;</description>
      <category>DotNetNuke General;MS SQL Server</category>
    </item>
    <item>
      <trackback:ping>http://dnnblog.venexus.com/Trackback.aspx?guid=81a16681-798b-4d1d-a617-854a5dc399cf</trackback:ping>
      <pingback:server>http://dnnblog.venexus.com/pingback.aspx</pingback:server>
      <pingback:target>http://dnnblog.venexus.com/PermaLink,guid,81a16681-798b-4d1d-a617-854a5dc399cf.aspx</pingback:target>
      <dc:creator>Jeff Smith</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
We needed to check which modules were NOT being used on a DNN site. Why? It's
a multi-portal DNN 3.1 website with quite a few 3rd party modules on it and we wanted
to know which modules were not in use so we could remove them from the DNN installation
before performing an upgrade. No need to add extra compilications or search for module
updates for modules that were not being used. And if they are not being used, why
leave them on there adding to the bloat? Anyway, here is the SQL:
</p>
        <p>
SELECT     ModuleDefinitions.ModuleDefID, ModuleDefinitions.FriendlyName,
ModuleDefinitions.DesktopModuleID<br />
FROM         ModuleDefinitions LEFT OUTER
JOIN<br />
                     
Modules ON ModuleDefinitions.ModuleDefID = Modules.ModuleDefID<br />
WHERE     (Modules.ModuleDefID IS NULL)
</p>
        <img width="0" height="0" src="http://dnnblog.venexus.com/aggbug.ashx?id=81a16681-798b-4d1d-a617-854a5dc399cf" />
      </body>
      <title>Which Modules Not Being Used?</title>
      <guid isPermaLink="false">http://dnnblog.venexus.com/PermaLink,guid,81a16681-798b-4d1d-a617-854a5dc399cf.aspx</guid>
      <link>http://dnnblog.venexus.com/Which+Modules+Not+Being+Used.aspx</link>
      <pubDate>Sun, 03 Dec 2006 04:34:25 GMT</pubDate>
      <description>&lt;p&gt;
We needed to check which modules were&amp;nbsp;NOT being used on a DNN site. Why? It's
a multi-portal DNN 3.1 website with quite a few 3rd party modules on it and we wanted
to know which modules were not in use so we could remove them from the DNN installation
before performing an upgrade. No need to add extra compilications or search for module
updates for modules that were not being used. And if they are not being used, why
leave them on there adding to the bloat? Anyway, here is the SQL:
&lt;/p&gt;
&lt;p&gt;
SELECT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ModuleDefinitions.ModuleDefID, ModuleDefinitions.FriendlyName,
ModuleDefinitions.DesktopModuleID&lt;br&gt;
FROM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ModuleDefinitions LEFT OUTER
JOIN&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
Modules ON ModuleDefinitions.ModuleDefID = Modules.ModuleDefID&lt;br&gt;
WHERE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (Modules.ModuleDefID IS NULL)
&lt;/p&gt;
&lt;img width="0" height="0" src="http://dnnblog.venexus.com/aggbug.ashx?id=81a16681-798b-4d1d-a617-854a5dc399cf" /&gt;</description>
      <category>DotNetNuke General;MS SQL Server</category>
    </item>
    <item>
      <trackback:ping>http://dnnblog.venexus.com/Trackback.aspx?guid=1bc994fa-5443-4ea3-977f-7702786a5318</trackback:ping>
      <pingback:server>http://dnnblog.venexus.com/pingback.aspx</pingback:server>
      <pingback:target>http://dnnblog.venexus.com/PermaLink,guid,1bc994fa-5443-4ea3-977f-7702786a5318.aspx</pingback:target>
      <dc:creator>Jeff Smith</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">I know it has been over a week since the <a href="http://dnnblog.venexus.com/And+Then+There+Was+SearchPart+I.aspx">last
post</a>. Sorry to leave you hanging, but sometimes there are just not enough hours
in a day. Anyway, without further ado, here is part two…<strong>SEAMUS</strong>. 
<p>
At some point earlier this year, DNN Find became a different mission. We decided to
build a full blown <a href="http://www.venexus.com/Services/DotNetNuke/DotNetNukeSearch/tabid/1280/Default.aspx">search
engine for DotNetNuke</a>. Not one that would just index a single DNN site, but one
that would allow you to index all portals in a DNN installation AND information from
external sites. And how would external site indexing best be handled? …via RSS feed
aggregation of course.  
</p><p><a href="http://www.venexus.com/Services/DotNetNuke/DotNetNukeSearch/Seamus/tabid/1286/Default.aspx">Seamus</a> is
the first of the two modules that make up the <a href="http://www.venexus.com/Services/DotNetNuke/DotNetNukeSearch/tabid/1280/Default.aspx">Venexus
Search Engine</a>. <strong>SEAMUS</strong> = <strong>S</strong>earch <strong>E</strong>ngine <strong>A</strong>ggregation <strong>M</strong>odule <strong>U</strong>tilizing <strong>S</strong>yndication.
On a side note, there is also an obscure Pink Floyd song that not many know from the <a href="http://www.google.com/musicl?lid=ko2BrR_u7aL&amp;aid=kteLDMrjybG">Meddle</a> album,
about an old hound dog by the same name. Our hound dog “fetches” data and stores it
to a table that has enabled MS SQL Server full-text indexing. But before I go into
the specifics, I think it is important to know about the framework.
</p><p>
We started with traditional DotNetNuke module development…until <a href="http://www.entityspaces.net">EntitySpaces</a> was
released. I’m an old ASP/VB developer and personally, it took me a bit to get my head
wrapped around how ES worked, but once I figured it out, I was hooked. ES saves the
day by automagically generating all the CRUD (create, read, update, delete). While
very similar to the logic of a BusinessController and InfoObject, ES uses Collections
and Entities. But, where I found ES the most useful is the <a href="http://www.entityspaces.net/portal/Documentation/QueryAPISamples/tabid/80/Default.aspx">Dynamic
Queries</a> you can write directly into the business logic.
</p><p>
For example, in Seamus we need to check the domain to see if it matches one we are
already indexing:
</p><p>
 <strong><font color="#ff0000">          
Dim colDomains As New VenexusDomainCollection<br />
            colDomains.Query.Select(colDomains.Query.DomainName,
colDomains.Query.DomainID)<br />
            colDomains.Query.Where(colDomains.Query.DomainName.Equal(GetDomainName(sURL)))<br />
            colDomains.Query.Load()<br />
            If colDomains.Count
&gt; 0 Then<br />
                    <font color="#006400"> ‘a
bunch of removed logic goes here..</font><br />
            End IF</font></strong></p><p>
With the <em>colDomains.Query.Select</em>, we are only returning the data we need
rather than all columns. With the <em>colDomains.Query.Where</em>, I eliminated the
need to:
</p><ol style="MARGIN-TOP: 0in" type="1"><li>
Write a stored proc just to retrieve by DomainName 
</li><li>
Iterate through the entire table, every row of all domains, just to find the one I
am looking for.</li></ol><p>
I won’t even go into the performance gain of not having to loop through those rows
of all columns, nor the time (even though it would be simple) to write a stored proc
to pass in DomainName and have it return the DomainID. 
</p><p>
Here is an example of adding a record to Seamus for a new feed:
</p><p><font color="#ff0000"><strong>         Dim
entFeed As New VenexusSeamus<br />
         entFeed.AddNew()<br />
         entFeed.Url = txtURL.Text<br />
         entFeed.Title = txtTitle.Text<br />
         entFeed.Account = txtAccount.Text<br />
         entFeed.Password = txtPassword.Text<br />
         entFeed.CacheTime = txtCacheTime.Text<br />
         entFeed.FeedTimeOut = txtTimeOut.Text<br />
         entFeed.DateAdded = Now()<br />
         entFeed.DateUpdated = "1/1/1901"<br />
           If chkActive.Checked
= True Then<br />
              entFeed.IsActive
= True<br />
            Else<br />
               
entFeed.IsActive = False<br />
            End If<br />
         entFeed.Save()</strong></font></p><p>
Easy enough, eh?
</p><p>
And here is an update of a feed for Seamus:
</p><p><font color="#ff0000"><strong>    Dim entFeed As New VenexusSeamus<br />
    entFeed.LoadByPrimaryKey(hidRSSID.Value)<br />
    entFeed.Url = txtURL.Text<br />
    entFeed.Title = txtTitle.Text<br />
    entFeed.Account = txtAccount.Text<br />
    entFeed .Password = txtPassword.Text<br />
    entFeed.CacheTime = txtCacheTime.Text<br />
    entFeed.FeedTimeOut = txtTimeOut.Text<br />
    entFeed.DateAdded = Now()<br />
    entFeed.DateUpdated = "1/1/1901"<br />
          If chkActive.Checked = True
Then<br />
              entFeed.IsActive
= True<br />
          Else<br />
               
entFeed.IsActive = False<br />
          End If<br />
    entFeed .Save()</strong></font></p><p>
And a delete example:
</p><p><strong><font color="#ff0000">    Dim entFeed As New VenexusSeamus<br />
    entFeed.LoadByPrimaryKey(hidRSSID.Value)<br />
    entFeed.MarkAsDeleted()<br />
    entFeed.Save()</font></strong></p><p>
Yeah, it’s that easy. Makes you want to fire up your IDE eh?
</p><p>
Sure, I have used DAL Builder Pro, which was a huge time saver, but EntitySpaces made
me to never want to develop any other way. Plus, last I checked, DAL Builder Pro was
still only for DNN 3 development. The ease of generating the DAL and the ability to
easily REgenerate the DAL if the database schema changes, makes ES the tool of choice
for all of our module development. I cannot even begin to count the hours I have previously
spent hand coding changes in a DAL due to spec changes. Oh how I wish I had all those
hours back! 
</p><p>
With the new <a href="http://www.entityspaces.net/portal/Products/DotNetNukeASCXAdminGridTemplateSuite/tabid/134/Default.aspx">DNN
admin grid templates</a>, it is just ridiculous how much code is generated before
having to write the first line. The new template will generate an editable grid of
the table(s), with sorting, paging, and search. If you are interested in .Net development
(this is not just a DNN tool, it works for all .Net 2.0 development and using C# or
VB.Net), you must <a href="http://www.entityspaces.net/portal/Login/tabid/147/Default.aspx?returnurl=%2fportal%2fDownloads%2ftabid%2f94%2fforumid%2f58%2fpostid%2f2076%2fview%2ftopic%2fDefault.aspx">check
it out</a>. 
</p><p><em>NOTE: Just so you know, we do not have any affiliation or partnership with EntitySpaces,
we just think their tool rocks.</em></p><p>
So, even though we had much of the initial Seamus development completed, we scrapped
it and started development with ES. This will make future modifications and additions
so much easier, saving time in the long run.
</p><p>
With that said, here is how Seamus works…
</p><p>
After you install Seamus, you can go into the module settings:
</p><p><img src="http://dnnblog.venexus.com/content/binary/seamus-setting.JPG" border="0" /></p><p>
So in this example, the display for Seamus should show the top 10 items last indexed,
each with a link to the actual item in the Title and using the “…More” link. A feed
icon will also be displayed that provides a link to a RSS feed for the top 10 items.
</p><p>
Here is an example of the display:
</p><p><img src="http://dnnblog.venexus.com/content/binary/seamus-all.JPG" border="0" /></p><p>
Now while the above example does not show any local items (tabs or modules from this
site), it does have items indexed from other sites. All of these items were from RSS
feeds that were aggregated. As a module editor, you have the ability to manage external
feeds (or local feeds if so desired, but we will go into more detail about how Seamus
works shortly). But, if there were local items visible, they would only be visible
if you have the proper permissions. Seamus checks permissions on any local site at
the module and tab level for the display and the RSS feed. 
</p><p>
Here is an example of the feeds we are are currently indexing on the Venexus Search
Engine:
</p><p><img src="http://dnnblog.venexus.com/content/binary/seamus-edit-feed-1.JPG" border="0" /></p><p>
Here is the interface for adding new feeds:
</p><p><img src="http://dnnblog.venexus.com/content/binary/seamus-edit-feed-2.JPG" border="0" /></p><p>
Now we will get into how Seamus works…
</p><p>
First off, on the first load of Seamus, a dump of data from all modules supporting
the IPortable interface (currently limited to DNN Core modules) is performed to ensure
that there is data in the index. And every X hours (determined in module settings),
the index is checked for new, updated, and deleted pages/modules.
</p><p>
Secondly, any feeds that have been added to Seamus are aggregated 5 at a time, order
by last updated.  And, while the user is sitting on the page, every 30 seconds
that pass, 5 more feeds are aggregated via AJAX. This user interactive aggregating
decreases the load on the server, rather than running as a scheduled task like the
core DNN Search. 
</p><p>
In order to save bandwidth, and to not tick off the owners of the websites you are
aggregating data from, Seamus has what I call “smart caching”.  Each time a feed
is requested, if the information in the feed as not been updated, Seamus will increase
the cache time. If the feed has been updated, it will request the same feed sooner
than it had previously, decreasing the cache time. Over time, and based on the “average”
a feed it updated, Seamus learns when to check again for updates, all while obeying
TTLs.
</p><p>
Seamus will also index the current page/tab it is sitting on. Now you may be asking
why you would index a page that displays items that have already been indexed. Well,
Seamus can be setup to not display the top X items and/nor the RSS feed. Here is an
example:
</p><p><img src="http://dnnblog.venexus.com/content/binary/seamus-nothing.JPG" border="0" /></p><p>
With the above Seamus settings and the module settings to display on all pages and
set to not display the container or using an “invisible” container, when a user lands
on any page of the site, the page is indexed. You can index your entire site by letting
the users "crawl" the website. Also, when the page is updated, the index will be updated.
Here is the module settings example:
</p><p><img src="http://dnnblog.venexus.com/content/binary/module-settings.JPG" border="0" /></p><p>
So, not only does Seamus index all portals in the DNN installation by doing a dump
of all modules that support the IPortable interface and individual page indexing based
on user interaction, it will also aggregate and index data from other sites. This
gives you the ability to create a full blown search engine for your niche. For example,
let say you have a website about racing. You could have your entire DNN site indexed,
along with aggregation of more racing data from the following sites:
</p><p><a href="http://www.sportsline.com/partners/feeds/rss/auto_news">http://www.sportsline.com/partners/feeds/rss/auto_news</a></p><p><a href="http://rss.news.yahoo.com/imgrss/events/sp/042103autoformula">http://rss.news.yahoo.com/imgrss/events/sp/042103autoformula</a></p><p><a href="http://rss.cnn.com/rss/si_motorsports.rss">http://rss.cnn.com/rss/si_motorsports.rss</a></p><p>
Not only are you able to display a list of the last items indexed in order to keep
a page from becoming stagnant, you can also provide a RSS feed for your users, giving
them a reason to return to your site. I will save a Seamus and SEO discussion for
another time, but here is an example site for a <a href="http://search.truelawyers.com">legal
search engine</a>.
</p><p>
Speaking of time, I am once again out of it. Part III will be a discussion of the
second module, the search form module. Stay tuned...
</p><p>
 
</p><img width="0" height="0" src="http://dnnblog.venexus.com/aggbug.ashx?id=1bc994fa-5443-4ea3-977f-7702786a5318" /></body>
      <title>And then there was Search...Part II</title>
      <guid isPermaLink="false">http://dnnblog.venexus.com/PermaLink,guid,1bc994fa-5443-4ea3-977f-7702786a5318.aspx</guid>
      <link>http://dnnblog.venexus.com/And+Then+There+Was+SearchPart+II.aspx</link>
      <pubDate>Sat, 25 Nov 2006 10:04:44 GMT</pubDate>
      <description>I know it has been over a week since the &lt;a href="http://dnnblog.venexus.com/And+Then+There+Was+SearchPart+I.aspx"&gt;last
post&lt;/a&gt;. Sorry to leave you hanging, but sometimes there are just not enough hours
in a day. Anyway, without further ado, here is part two…&lt;strong&gt;SEAMUS&lt;/strong&gt;. 
&lt;p&gt;
At some point earlier this year, DNN Find became a different mission. We decided to
build a full blown &lt;a href="http://www.venexus.com/Services/DotNetNuke/DotNetNukeSearch/tabid/1280/Default.aspx"&gt;search
engine for DotNetNuke&lt;/a&gt;. Not one that would just index a single DNN site, but one
that would allow you to index all portals in a DNN installation AND information from
external sites. And how would external site indexing best be handled? …via RSS feed
aggregation of course.&amp;nbsp;&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.venexus.com/Services/DotNetNuke/DotNetNukeSearch/Seamus/tabid/1286/Default.aspx"&gt;Seamus&lt;/a&gt; is
the first of the two modules that make up the &lt;a href="http://www.venexus.com/Services/DotNetNuke/DotNetNukeSearch/tabid/1280/Default.aspx"&gt;Venexus
Search Engine&lt;/a&gt;. &lt;strong&gt;SEAMUS&lt;/strong&gt; = &lt;strong&gt;S&lt;/strong&gt;earch &lt;strong&gt;E&lt;/strong&gt;ngine &lt;strong&gt;A&lt;/strong&gt;ggregation &lt;strong&gt;M&lt;/strong&gt;odule &lt;strong&gt;U&lt;/strong&gt;tilizing &lt;strong&gt;S&lt;/strong&gt;yndication.
On a side note, there is also an obscure Pink Floyd song that not many know from the &lt;a href="http://www.google.com/musicl?lid=ko2BrR_u7aL&amp;amp;aid=kteLDMrjybG"&gt;Meddle&lt;/a&gt; album,
about an old hound dog by the same name. Our hound dog “fetches” data and stores it
to a table that has enabled MS SQL Server full-text indexing. But before I go into
the specifics, I think it is important to know about the framework.
&lt;/p&gt;
&lt;p&gt;
We started with traditional DotNetNuke module development…until &lt;a href="http://www.entityspaces.net"&gt;EntitySpaces&lt;/a&gt; was
released. I’m an old ASP/VB developer and personally, it took me a bit to get my head
wrapped around how ES worked, but once I figured it out, I was hooked. ES saves the
day by automagically generating all the CRUD (create, read, update, delete). While
very similar to the logic of a BusinessController and InfoObject, ES uses Collections
and Entities. But, where I found ES the most useful is the &lt;a href="http://www.entityspaces.net/portal/Documentation/QueryAPISamples/tabid/80/Default.aspx"&gt;Dynamic
Queries&lt;/a&gt;&amp;nbsp;you can write directly into the business logic.
&lt;/p&gt;
&lt;p&gt;
For example, in Seamus we need to check the domain to see if it matches one we are
already indexing:
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;&lt;strong&gt;&lt;font color=#ff0000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
Dim colDomains As New VenexusDomainCollection&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; colDomains.Query.Select(colDomains.Query.DomainName,
colDomains.Query.DomainID)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; colDomains.Query.Where(colDomains.Query.DomainName.Equal(GetDomainName(sURL)))&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; colDomains.Query.Load()&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If colDomains.Count
&amp;gt; 0 Then&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color=#006400&gt; ‘a
bunch of removed logic goes here..&lt;/font&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End IF&lt;/font&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
With the &lt;em&gt;colDomains.Query.Select&lt;/em&gt;, we are only returning the data we need
rather than all columns. With the &lt;em&gt;colDomains.Query.Where&lt;/em&gt;, I eliminated the
need to:
&lt;/p&gt;
&lt;ol style="MARGIN-TOP: 0in" type=1&gt;
&lt;li&gt;
Write a stored proc just to retrieve by DomainName 
&lt;li&gt;
Iterate through the entire table, every row of all domains, just to find the one I
am looking for.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
I won’t even go into the performance gain of not having to loop through those rows
of all columns, nor the time (even though it would be simple) to write a stored proc
to pass in DomainName and have it return the DomainID. 
&lt;/p&gt;
&lt;p&gt;
Here is an example of adding a record to Seamus for a new feed:
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#ff0000&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim entFeed
As New VenexusSeamus&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; entFeed.AddNew()&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; entFeed.Url = txtURL.Text&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; entFeed.Title = txtTitle.Text&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; entFeed.Account = txtAccount.Text&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; entFeed.Password = txtPassword.Text&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; entFeed.CacheTime = txtCacheTime.Text&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; entFeed.FeedTimeOut = txtTimeOut.Text&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; entFeed.DateAdded = Now()&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; entFeed.DateUpdated = "1/1/1901"&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;If chkActive.Checked
= True Then&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;entFeed.IsActive
= True&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Else&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
entFeed.IsActive = False&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; entFeed.Save()&lt;/strong&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
Easy enough, eh?
&lt;/p&gt;
&lt;p&gt;
And here is an update of a feed for Seamus:
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#ff0000&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Dim entFeed As New VenexusSeamus&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;entFeed.LoadByPrimaryKey(hidRSSID.Value)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;entFeed.Url = txtURL.Text&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;entFeed.Title = txtTitle.Text&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;entFeed.Account = txtAccount.Text&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;entFeed .Password = txtPassword.Text&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;entFeed.CacheTime = txtCacheTime.Text&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;entFeed.FeedTimeOut = txtTimeOut.Text&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;entFeed.DateAdded = Now()&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;entFeed.DateUpdated = "1/1/1901"&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;If chkActive.Checked = True
Then&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;entFeed.IsActive
= True&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Else&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
entFeed.IsActive = False&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;End If&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;entFeed .Save()&lt;/strong&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
And a delete example:
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;&lt;font color=#ff0000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Dim entFeed As New VenexusSeamus&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;entFeed.LoadByPrimaryKey(hidRSSID.Value)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;entFeed.MarkAsDeleted()&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;entFeed.Save()&lt;/font&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Yeah, it’s that easy. Makes you want to fire up your IDE eh?
&lt;/p&gt;
&lt;p&gt;
Sure, I have used DAL Builder Pro, which was a huge time saver, but EntitySpaces made
me to never want to develop any other way. Plus, last I checked, DAL Builder Pro was
still only for DNN 3 development. The ease of generating the DAL and the ability to
easily REgenerate the DAL if the database schema changes, makes ES the tool of choice
for all of our module development. I cannot even begin to count the hours I have previously
spent hand coding changes in a DAL due to spec changes. Oh how I wish I had all those
hours back! 
&lt;/p&gt;
&lt;p&gt;
With the new &lt;a href="http://www.entityspaces.net/portal/Products/DotNetNukeASCXAdminGridTemplateSuite/tabid/134/Default.aspx"&gt;DNN
admin grid templates&lt;/a&gt;, it is just ridiculous how much code is generated before
having to write the first line. The new template will generate an editable grid of
the table(s), with sorting, paging, and search. If you are interested in .Net development
(this is not just a DNN tool, it works for all .Net 2.0 development and using C# or
VB.Net), you must &lt;a href="http://www.entityspaces.net/portal/Login/tabid/147/Default.aspx?returnurl=%2fportal%2fDownloads%2ftabid%2f94%2fforumid%2f58%2fpostid%2f2076%2fview%2ftopic%2fDefault.aspx"&gt;check
it out&lt;/a&gt;. 
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;NOTE: Just so you know, we do not have any affiliation or partnership with EntitySpaces,
we just think their tool rocks.&lt;/em&gt; 
&lt;/p&gt;
&lt;p&gt;
So, even though we had much of the initial Seamus development completed, we scrapped
it and started development with ES. This will make future modifications and additions
so much easier, saving time in the long run.
&lt;/p&gt;
&lt;p&gt;
With that said, here is how Seamus works…
&lt;/p&gt;
&lt;p&gt;
After you install Seamus, you can go into the module settings:
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://dnnblog.venexus.com/content/binary/seamus-setting.JPG" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
So in this example, the display for Seamus should show the top 10 items last indexed,
each with a link to the actual item in the Title and using the “…More” link. A feed
icon will also be displayed that provides a link to a RSS feed for the top 10 items.
&lt;/p&gt;
&lt;p&gt;
Here is an example of the display:
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://dnnblog.venexus.com/content/binary/seamus-all.JPG" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
Now while the above example does not show any local items (tabs or modules from this
site), it does have items indexed from other sites. All of these items were from RSS
feeds that were aggregated. As a module editor, you have the ability to manage external
feeds (or local feeds if so desired, but we will go into more detail about how Seamus
works shortly). But, if there were local items visible, they would only be visible
if you have the proper permissions. Seamus checks permissions on any local site at
the module and tab level for the display and the RSS feed.&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Here is an example of the feeds we are are currently indexing on the Venexus Search
Engine:
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://dnnblog.venexus.com/content/binary/seamus-edit-feed-1.JPG" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
Here is the interface for adding new feeds:
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://dnnblog.venexus.com/content/binary/seamus-edit-feed-2.JPG" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
Now we will get into how Seamus works…
&lt;/p&gt;
&lt;p&gt;
First off, on the first load of Seamus, a dump of data from all modules supporting
the IPortable interface (currently limited to DNN Core modules) is performed to ensure
that there is data in the index. And every X hours (determined in module settings),
the index is checked for new, updated, and deleted pages/modules.
&lt;/p&gt;
&lt;p&gt;
Secondly, any feeds that have been added to Seamus are aggregated 5 at a time, order
by last updated.&amp;nbsp; And, while the user is sitting on the page, every 30 seconds
that pass, 5 more feeds are aggregated via AJAX. This user interactive aggregating
decreases the load on the server, rather than running as a scheduled task like the
core DNN Search. 
&lt;/p&gt;
&lt;p&gt;
In order to save bandwidth, and to not tick off the owners of the websites you are
aggregating data from, Seamus has what I call “smart caching”. &amp;nbsp;Each time a feed
is requested, if the information in the feed as not been updated, Seamus will increase
the cache time. If the feed has been updated, it will request the same feed sooner
than it had previously, decreasing the cache time. Over time, and based on the “average”
a feed it updated, Seamus learns when to check again for updates, all while obeying
TTLs.
&lt;/p&gt;
&lt;p&gt;
Seamus will also index the current page/tab it is sitting on. Now you may be asking
why you would index a page that displays items that have already been indexed. Well,
Seamus can be setup to not display the top X items and/nor the RSS feed. Here is an
example:
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://dnnblog.venexus.com/content/binary/seamus-nothing.JPG" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
With the above Seamus settings and the module settings to display on all pages and
set to not display the container or using an “invisible” container, when a user lands
on any page of the site, the page is indexed. You can index your entire site by letting
the users "crawl" the website. Also, when the page is updated, the index will be updated.
Here is the module settings example:
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://dnnblog.venexus.com/content/binary/module-settings.JPG" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
So, not only does Seamus index all portals in the DNN installation by doing a dump
of all modules that support the IPortable interface and individual page indexing based
on user interaction, it will also aggregate and index data from other sites. This
gives you the ability to create a full blown search engine for your niche. For example,
let say you have a website about racing. You could have your entire DNN site indexed,
along with aggregation of more racing data from the following sites:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.sportsline.com/partners/feeds/rss/auto_news"&gt;http://www.sportsline.com/partners/feeds/rss/auto_news&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://rss.news.yahoo.com/imgrss/events/sp/042103autoformula"&gt;http://rss.news.yahoo.com/imgrss/events/sp/042103autoformula&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://rss.cnn.com/rss/si_motorsports.rss"&gt;http://rss.cnn.com/rss/si_motorsports.rss&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Not only are you able to display a list of the last items indexed in order to keep
a page from becoming stagnant, you can also provide a RSS feed for your users, giving
them a reason to return to your site. I will save a Seamus and SEO discussion for
another time, but here is an example site for a &lt;a href="http://search.truelawyers.com"&gt;legal
search engine&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
Speaking of time, I am once again out of it. Part III will be a discussion of the
second module, the search form module. Stay tuned...
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://dnnblog.venexus.com/aggbug.ashx?id=1bc994fa-5443-4ea3-977f-7702786a5318" /&gt;</description>
      <category>DotNetNuke General;DotNetNuke Modules;DotNetNuke Search;MS SQL Server;Search Engine Optimization</category>
    </item>
    <item>
      <trackback:ping>http://dnnblog.venexus.com/Trackback.aspx?guid=5a77daa5-0965-441e-a251-4a76b548f037</trackback:ping>
      <pingback:server>http://dnnblog.venexus.com/pingback.aspx</pingback:server>
      <pingback:target>http://dnnblog.venexus.com/PermaLink,guid,5a77daa5-0965-441e-a251-4a76b548f037.aspx</pingback:target>
      <dc:creator>Jeff Smith</dc:creator>
      <title>And then there was Search...Part I</title>
      <guid isPermaLink="false">http://dnnblog.venexus.com/PermaLink,guid,5a77daa5-0965-441e-a251-4a76b548f037.aspx</guid>
      <link>http://dnnblog.venexus.com/And+Then+There+Was+SearchPart+I.aspx</link>
      <pubDate>Wed, 15 Nov 2006 16:12:18 GMT</pubDate>
      <description>&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;I know a lot of people have been waiting on this and it is literally
been over 5 years in the making, but it is now time to tell the story of how the Venexus
Search Engine came to be…&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;
&lt;o:p&gt;
&lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;strong&gt;&lt;em&gt;&lt;font color=#000000&gt;Bots, Crawlers, and Spiders, Oh My!&lt;/font&gt;&lt;/em&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;Once upon a time, long, long ago, well over 5 years ago anyway,
but that’s like ancient history in terms of the web, I wrote a little script to rip
down free fonts off of a font directory website, who shall remain nameless since they
are still around today. FontGrabber.vbs crawled their entire website saving zip files
of free font packages. If I remember correctly, it pulled down almost 5000 font packages
in a few hours.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;What a time saver! And
my crawler addiction began to set in…&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;o:p&gt;
&lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;strong&gt;&lt;em&gt;&lt;font color=#000000&gt;MediaGrabber&lt;/font&gt;&lt;/em&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;The next crawler I wrote extracted data from an online database
of live music recordings. I dumped about 10 to 12 thousand records into a custom media
database. My crawling habit had now increased to an hour or 2 a week perfecting the
use of HTTPGets using XMLHTTP and making modification to scrape other data from the
site based on URL parameters.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;&lt;/font&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;Many variations of MediaGrabber were developed over the years
for aggregating data. Some of the variations include:&lt;/font&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;font color=#000000&gt;PhotoGrabber
- For consuming one of the stock photography buffett sites. An interesting note, the
one we crawled, which will also remain nameless, started limiting the number of photo
request per day the following month. I wonder if that had anything to do with what
we were doing...hehe.&lt;/font&gt;
&lt;/div&gt;
&lt;li&gt;
&lt;div class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;font color=#000000&gt;FDAUpdater -
For pulling down pharmaceutical data from the FDA to be used on a pharmacy website.
Enough said about that one.&lt;/font&gt;
&lt;/div&gt;
&lt;li&gt;
&lt;div class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;font color=#000000&gt;CategoryDump
- For pulling category names from Yahoo and DMOZ.&lt;/font&gt;
&lt;/div&gt;
&lt;li&gt;
&lt;div class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;font color=#000000&gt;And others...&lt;/font&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;o:p&gt;
&lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;strong&gt;&lt;em&gt;&lt;font color=#000000&gt;Madhatter&lt;/font&gt;&lt;/em&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;Madhatter was my first bot. It was a VBScript that sat in a Direct
Connect P2P Server application. Madhatter started as a trigger bot.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;A
user would type a message into the chat and if it contained keywords or phrases that
matched a list of keywords and response(s), the bot would automatically reply with
a random response from the list that was associated with that keyword. Over time,
I added around 1000 different responses to about 400 keywords. Madhatter then received
search capabilities. You could type +search &amp;lt;band&amp;gt; or +search &amp;lt;date&amp;gt; and
it would return a top 100 list of media records from a database of about 20000 records
that matched with a link pointing them to the website with the information. I then
gave the ability for the Operators to allow Madhatter speak on their behalf. So in
addition to Madhatter automatically responding, the operator would make new responses
to the user messages via Madhatter. This worked so well, and I guess to some degree
could be considered my first AI application, that many DC newbies really thought it
was a live person responding to their messages, even when Madhatter was running solo.
I even setup the bot so that if a user tried to send Madhatter a private message chat,
it would display in the Operators chat. This led to untold hours of entertainment
watching people talk to a rude, trash talking bot that would kick them off the hub
if they responded in a derogatory manner. Just thinking about it again makes me want
to write a DNN Bot, maybe not one as feisty as Madhatter. Or maybe “bot” interactive
search anyone? &lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;o:p&gt;
&lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;o:p&gt;
&lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;strong&gt;&lt;em&gt;&lt;font color=#000000&gt;Tiny IntRAnet Crawler&lt;/font&gt;&lt;/em&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;I started working for Semiconductor Research Corporation in August
2001 as their Web Administrator/Developer. At that time they only had a website and
a forums website. The forums website was using a product called SiteScope which was
written in TCL, but we will not even go there in fear of recurring nightmares .The &lt;/font&gt;&lt;a href="http://www.src.org"&gt;&lt;font color=#0000ff&gt;SRC&lt;/font&gt;&lt;/a&gt;&lt;font color=#000000&gt; main
site was not built using a Content Management System, rather a Staging to Dev push
of content. I think it was sometime in early 2002, I began writing my first true crawler
that would consume all items in a domain.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;o:p&gt;
&lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;The need was simple…with the amount of content we had on the site,
there was bound to be broken links, missing images, orphaned files, and God forbid,
500 server errors. We needed something that would crawl the site and search for any
issues, compare the file system, and generate a report for the Content Management
Team. I was still using XMLHTTP component for grabbing the data until I found ASPTear.
ASPTear proved to be faster and was the HTTP component of choice until I found NSoftware.
NSoft’s HTTP component was far superior to any of the others for speed and with many
more methods/objects that could be utilized. &lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;o:p&gt;
&lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;SRC had a pretty big main site and we began developing 2 other
websites to fall under the SRC umbrella. This lead to TIC 2.0, which crawled all 3
domains, and would (and probably still does) generate a report of any issues. With
TIC now crawling more than one website and doing it dynamically (could jump from one
domain and then the other with the FIFO [First In First Out] URL queue/stack), the
need came to check the first link offsite. Why? In case the link moved (301 or 302),
or was generating a 404. We have no control what some site may do to their content,
but we sure wanted to know if our users were going to get an error if it was broken.
TIC would find those problem links and let the CM Team know they needed to remove
the link, or change the URL to the new redirect. Now comes TIC 3.0...&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;o:p&gt;
&lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;strong&gt;&lt;em&gt;&lt;font color=#000000&gt;Tiny IntERnet Crawler&lt;/font&gt;&lt;/em&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;One night I was goofing around with TIC and decided to turn off
the function that performs the domain or first link offsite check and just let it
run…and run. And it did, all night long. When I got up the next morning, it had crawled
almost 30,000 pages and had built a queue of over 100,000. Now I was hooked. How could
I get more data and faster? Since TIC was a script and utilized a central database
for the URL queue, instead of an in memory stack, I was able run multiple instances
of the crawler. 10 instances of TIC 3.0 crawling brought my little home router to
its knees. In fact, it choked and rolled over tits up. In three hours, over 110,000
pages were crawled, over 500,000 URLs queued, and had sucked down over a gig of data.
Whoa…this was getting fun. &lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;o:p&gt;
&lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;Over the next year or so I really was tweaking TIC quite a bit.
I’d let it run for weeks at a time. I quickly realized I was going to run into a big
problem…Disk space. The database was getting bloated and slowing down dramatically
after it had indexed over 1 million pages and had over 5 more million queued. While
those numbers are a drop in the bucket when compared to the 800 pound gorillas of
search, it is still a lot of data for such a small operation. And, TIC would crawl
anything, all file types. &lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/span&gt;So I started
curbing back what TIC looked for…all the way down to just XML. TIC, as the last version
in use, now looks just for XML files anywhere on the Internet. Of course I added tweaks
to check domain importance or linking page importance based on keywords and altered
the queueing process so that TIC would not get stuck on a crappy domain. But that
is a discussion for another time.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;o:p&gt;
&lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;strong&gt;&lt;em&gt;&lt;font color=#000000&gt;Tiny XML Spider&lt;/font&gt;&lt;/em&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;So with TIC crawling the web looking for XML files, TXS was developed
to crawl and index the XML files TIC found. TXS runs continuously, iterating through
all “approved” RSS feeds (about 2,500 of over 100,000). For each feed it parses through
the articles and stores anything new to the database. If the feed has been updated,
TXS will return in less time. Feeds that have not been updated will be crawled the
next time after a longer duration. I call this “smart caching”, which will be discussed
in the features of Seamus later on. TXS has aggregated over 1.7 million articles from
only 2500 news feeds. Not bad considering how much other data we have to collect from
feeds that have not been approved. We have been stuffing the aggregated data into
a combination of DNN websites for SEO reasons.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;&lt;img src="http://dnnblog.venexus.com/content/binary/txs.JPG" border=0&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;o:p&gt;
&lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;strong&gt;&lt;em&gt;&lt;font color=#000000&gt;DNNFind&lt;/font&gt;&lt;/em&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;DNNFind = DotNetNuke Fulltext INDexing. At some point about 2
years ago, and with TXS bringing in the data, we decided to build a DNN module that
would perform a SQL Server fulltext index query against the aggregated data and return
the results. While this is not a bot, crawler, or spider, it is a fundamental step
of searching the data, which we will get into when discussing the search module of
VSE.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;o:p&gt;
&lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; tab-stops: 119.4pt"&gt;
&lt;strong&gt;&lt;em&gt;&lt;font color=#000000&gt;DNN Spider&lt;/font&gt;&lt;/em&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; tab-stops: 119.4pt"&gt;
&lt;font color=#000000&gt;&lt;?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" /&gt;I
started developing a standalone VB.Net application for crawling DotNetNuke websites.
This was my first multi-threaded application. While similar to TIC, this application
would allow 1 to many threads to be used to handle the crawling. What we found is
that we can use the application for stress testing DotNetNuke websites by throwing
a few hundred or thousand request at it. And, we can use multiple applications running
on different servers to really pound away at a box. However, this got me thinking
about distributing the load of crawling against the users of the website, which is
why we are using 
&lt;st1:City w:st="on"&gt;
&lt;st1:place w:st="on"&gt;AJAX&lt;/st1:place&gt;
&lt;/st1:City&gt;
to request more data from Seamus. More on that later on as well.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;o:p&gt;
&lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;Okay, so you made it this far and you are probably asking why
I have not even started to describe what the Venexus Search Engine does. Well, I think
it is important to understand the background of the application and how it came to
be. It’s not like we just came up with some flimsy half-brain ideas about how a search
engine&amp;nbsp;should be done, but rather years of trial and error. And, I want everyone
to realize that our product is not going to disappear, but get stronger as we add
more functionality from all of the code we have written over the years. With that
said, here are the details...&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;&lt;/font&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;Sorry, I am out of time and you will have to wait for Part II
of this post.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;&lt;/font&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;In the meantime, if you want to&amp;nbsp;see&amp;nbsp;Venexus Search Engine&amp;nbsp;in
action, go to &lt;/font&gt;&lt;a href="http://search.venexus.com"&gt;&lt;font color=#0000ff&gt;search.venexus.com&lt;/font&gt;&lt;/a&gt;&lt;font color=#000000&gt;.&amp;nbsp;To
read more about VSE, go &lt;/font&gt;&lt;a href="http://www.venexus.com/Services/DotNetNuke/DotNetNukeSearch/tabid/1280/Default.aspx"&gt;&lt;font color=#0000ff&gt;here&lt;/font&gt;&lt;/a&gt;&lt;font color=#000000&gt;.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;&lt;font color=#000000&gt;REQUIREMENTS FOR VENEXUS SEARCH ENGINE&lt;/font&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;font color=#000000&gt;&lt;b&gt;DotNetNuke 4.3.5&lt;/b&gt; &lt;/font&gt; 
&lt;li&gt;
&lt;font color=#000000&gt;SQL Server supporting Full-Text Indexing &lt;/font&gt; 
&lt;li&gt;
&lt;font color=#000000&gt;.Net full trust for EntitySpaces and Reflection usage&lt;/font&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;If you would like to test our release candidate, please reply
in a comment to this post and I will send you the PA's.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font color=#000000&gt;&lt;/font&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://dnnblog.venexus.com/aggbug.ashx?id=5a77daa5-0965-441e-a251-4a76b548f037" /&gt;</description>
      <category>DotNetNuke General;DotNetNuke Modules;DotNetNuke Search;MS SQL Server;Search Engine Optimization</category>
    </item>
    <item>
      <trackback:ping>http://dnnblog.venexus.com/Trackback.aspx?guid=13e39982-1a2a-4094-ae7b-4ded52e2bcbf</trackback:ping>
      <pingback:server>http://dnnblog.venexus.com/pingback.aspx</pingback:server>
      <pingback:target>http://dnnblog.venexus.com/PermaLink,guid,13e39982-1a2a-4094-ae7b-4ded52e2bcbf.aspx</pingback:target>
      <dc:creator>Jeff Smith</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Did you know that SQL Server Express now has Full-Text Indexing? With the soon to
be release of our DotNetNuke search module, which requires SQL Server Full-Text Indexing,
I thought it would be helpful to make a post here for those who did not know the differences
between SQL Server Express versions.
</p>
        <p>
          <table class="show" cellspacing="0" cellpadding="0" width="100%" border="0">
            <tbody>
              <tr class="show">
                <td class="content_box_white_gray">
                  <div class="set_relative">
                    <div class="set_relative">
                      <p class="page_title">
                        <font size="2">
                          <strong>
                            <em>SQL Server Express Edition Comparison</em>
                          </strong>
                        </font>
                      </p>
                      <p class="p1">
                        <font size="2">You have several specific products to choose from when you install
SQL Server Express Edition Use the following table to see how features for SQL Server
compare across other Express Edition products. </font>
                      </p>
                      <table class="show_table" cellspacing="0" cellpadding="0" width="100%" border="0">
                        <tbody>
                          <tr class="show">
                            <td class="show_table_b" colspan="4">
                              <p class="page_title">
                                <span class="color">
                                  <font size="2">Express Edition Products for SQL Server Compared</font>
                                </span>
                              </p>
                            </td>
                          </tr>
                          <tr class="show">
                            <td class="show_table_left_a" style="HEIGHT: 38px">
                              <strong>
                                <font size="2">Feature</font>
                              </strong>
                            </td>
                            <td class="show_table_a" style="HEIGHT: 38px">
                              <strong>
                                <font size="2">SQL Server 2005 Express Edition</font>
                              </strong>
                            </td>
                            <td class="show_table_a" style="HEIGHT: 38px">
                              <strong>
                                <font size="2">SQL Server 2005 Express Edition with Advanced Services</font>
                              </strong>
                            </td>
                            <td class="show_table_a" style="HEIGHT: 38px">
                              <strong>
                                <font size="2">SQL Server 2005 Express Edition Toolkit</font>
                              </strong>
                            </td>
                          </tr>
                          <tr class="show">
                            <td class="show_table_left">
                              <font size="2">Database Engine</font>
                            </td>
                            <td class="show_table">
                              <div align="center">
                                <font size="2">*</font>
                              </div>
                            </td>
                            <td class="show_table">
                              <div align="center">
                                <font size="2">*</font>
                              </div>
                            </td>
                            <td class="show_table">
                              <div align="center">
                                <font size="2">
                                </font> 
</div>
                            </td>
                          </tr>
                          <tr class="show">
                            <td class="show_table_left">
                              <font size="2">Client Components</font>
                            </td>
                            <td class="show_table">
                              <div align="center">
                                <font size="2">*</font>
                              </div>
                            </td>
                            <td class="show_table">
                              <div align="center">
                                <font size="2">*</font>
                              </div>
                            </td>
                            <td class="show_table">
                              <div align="center">
                                <font size="2">* </font>
                              </div>
                            </td>
                          </tr>
                          <tr class="show">
                            <td class="show_table_left">
                              <font size="2">Full Text Search</font>
                            </td>
                            <td class="show_table">
                              <div align="center">
                                <font size="2">
                                </font> 
</div>
                            </td>
                            <td class="show_table">
                              <div align="center">
                                <font size="2">*</font>
                              </div>
                            </td>
                            <td class="show_table">
                              <div align="center">
                                <font size="2">
                                </font> 
</div>
                            </td>
                          </tr>
                          <tr class="show">
                            <td class="show_table_left">
                              <font size="2">Reporting Services</font>
                            </td>
                            <td class="show_table">
                              <div align="center">
                                <font size="2">
                                </font> 
</div>
                            </td>
                            <td class="show_table">
                              <div align="center">
                                <font size="2">*</font>
                              </div>
                            </td>
                            <td class="show_table">
                              <div align="center">
                                <font size="2">
                                </font> 
</div>
                            </td>
                          </tr>
                          <tr class="show">
                            <td class="show_table_left">
                              <font size="2">Management Studio Express</font>
                            </td>
                            <td class="show_table">
                              <div align="center">
                                <font size="2">
                                </font> 
</div>
                            </td>
                            <td class="show_table">
                              <div align="center">
                                <font size="2">*</font>
                              </div>
                            </td>
                            <td class="show_table">
                              <div align="center">
                                <font size="2">*</font>
                              </div>
                            </td>
                          </tr>
                          <tr class="show">
                            <td class="show_table_left">
                              <font size="2">Business Intelligence Developer Studio</font>
                            </td>
                            <td class="show_table">
                              <div align="center">
                                <font size="2">
                                </font> 
</div>
                            </td>
                            <td class="show_table">
                              <div align="center">
                                <font size="2">
                                </font> 
</div>
                            </td>
                            <td class="show_table">
                              <div align="center">
                                <font size="2">*</font>
                              </div>
                            </td>
                          </tr>
                        </tbody>
                      </table>
                      <p class="p1">
                        <font size="2">Each SQL Server Express Edition product has a specific use. Read the
following sections to learn how each Express Edition product for SQL Server compares
to the others.</font>
                      </p>
                      <p class="p2">
                        <b>
                          <font size="2">SQL Server 2005 Express Edition</font>
                        </b>
                      </p>
                      <p class="p1">
                        <font size="2">How does the Express Edition of SQL Server compare to other SQL Server
Express Edition products? SQL Server Express Edition is perfect for use as an embedded
database for a desktop application that requires a fully functional SQL Server Database
Engine. SQL Server Express offers the smallest package size for faster downloads or
to conserve space on deployment media.</font>
                      </p>
                      <p class="p2">
                        <font size="2">
                          <b>SQL Server 2005 Express Edition with Advanced Services</b>
                        </font>
                      </p>
                      <p class="p1">
                        <font size="2">How does the Express Edition with Advanced Services for SQL Server
compare to the other SQL Server Express Edition products? SQL Server 2005 Express
Edition with Advanced Services is perfect for use as a backend to a small, multiuser
application that requires more advanced features such as Web reporting or Full-text
Search. </font>
                      </p>
                      <p class="p2">
                        <font size="2">
                          <b>SQL Server 2005 Express Edition Toolkit</b>
                        </font>
                      </p>
                      <p class="p1">
                        <font size="2">How does the Express Edition Toolkit for SQL Server compare to other
SQL Server Express Edition products? Install this package if you need the management
tools and client components, but do not need the Database Engine. </font>
                      </p>
                    </div>
                    <!-- End Box Content -->
                  </div>
                </td>
                <td class="white_gray_r" width="10">
                  <font size="2">
                  </font>
                </td>
              </tr>
              <tr class="show">
                <td class="white_gray_bl" width="10">
                  <font size="2">
                    <img height="10" src="http://msdn.microsoft.com/vstudio/images/clear.gif" width="10" />
                  </font>
                </td>
              </tr>
            </tbody>
          </table>
        </p>
        <p>
Source: <a href="http://msdn.microsoft.com/vstudio/express/sql/compare/default.aspx">MSDN</a></p>
        <p>
Ready to download SQL Server 2005 Express with Advanced Services (has Full-Text Index)?
Its free and <a href="http://msdn.microsoft.com/vstudio/express/sql/download/">here</a>.
</p>
        <img width="0" height="0" src="http://dnnblog.venexus.com/aggbug.ashx?id=13e39982-1a2a-4094-ae7b-4ded52e2bcbf" />
      </body>
      <title>SQL Server Express with Full-Text Indexing</title>
      <guid isPermaLink="false">http://dnnblog.venexus.com/PermaLink,guid,13e39982-1a2a-4094-ae7b-4ded52e2bcbf.aspx</guid>
      <link>http://dnnblog.venexus.com/SQL+Server+Express+With+FullText+Indexing.aspx</link>
      <pubDate>Mon, 06 Nov 2006 00:31:30 GMT</pubDate>
      <description>&lt;p&gt;
Did you know that SQL Server Express now has Full-Text Indexing? With the soon to
be release of our DotNetNuke search module, which requires SQL Server Full-Text Indexing,
I thought it would be helpful to make a post here for those who did not know the differences
between SQL Server Express versions.
&lt;/p&gt;
&lt;p&gt;
&lt;table class=show cellspacing=0 cellpadding=0 width="100%" border=0&gt;
&lt;tbody&gt;
&lt;tr class=show&gt;
&lt;td class=content_box_white_gray&gt;
&lt;div class=set_relative&gt;
&lt;div class=set_relative&gt;
&lt;p class=page_title&gt;
&lt;font size=2&gt;&lt;strong&gt;&lt;em&gt;SQL Server Express Edition Comparison&lt;/em&gt;&lt;/strong&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=p1&gt;
&lt;font size=2&gt;You have several specific products to choose from when you install SQL
Server Express Edition Use the following table to see how features for SQL Server
compare across other Express Edition products. &lt;/font&gt;
&lt;/p&gt;
&lt;table class=show_table cellspacing=0 cellpadding=0 width="100%" border=0&gt;
&lt;tbody&gt;
&lt;tr class=show&gt;
&lt;td class=show_table_b colspan=4&gt;
&lt;p class=page_title&gt;
&lt;span class=color&gt;&lt;font size=2&gt;Express Edition Products for SQL Server Compared&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class=show&gt;
&lt;td class=show_table_left_a style="HEIGHT: 38px"&gt;
&lt;strong&gt;&lt;font size=2&gt;Feature&lt;/font&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td class=show_table_a style="HEIGHT: 38px"&gt;
&lt;strong&gt;&lt;font size=2&gt;SQL Server 2005 Express Edition&lt;/font&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td class=show_table_a style="HEIGHT: 38px"&gt;
&lt;strong&gt;&lt;font size=2&gt;SQL Server 2005 Express Edition with Advanced Services&lt;/font&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td class=show_table_a style="HEIGHT: 38px"&gt;
&lt;strong&gt;&lt;font size=2&gt;SQL Server 2005 Express Edition Toolkit&lt;/font&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class=show&gt;
&lt;td class=show_table_left&gt;
&lt;font size=2&gt;Database Engine&lt;/font&gt;&lt;/td&gt;
&lt;td class=show_table&gt;
&lt;div align=center&gt;&lt;font size=2&gt;*&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td class=show_table&gt;
&lt;div align=center&gt;&lt;font size=2&gt;*&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td class=show_table&gt;
&lt;div align=center&gt;&lt;font size=2&gt;&lt;/font&gt;&amp;nbsp;
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class=show&gt;
&lt;td class=show_table_left&gt;
&lt;font size=2&gt;Client Components&lt;/font&gt;&lt;/td&gt;
&lt;td class=show_table&gt;
&lt;div align=center&gt;&lt;font size=2&gt;*&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td class=show_table&gt;
&lt;div align=center&gt;&lt;font size=2&gt;*&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td class=show_table&gt;
&lt;div align=center&gt;&lt;font size=2&gt;*&amp;nbsp;&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class=show&gt;
&lt;td class=show_table_left&gt;
&lt;font size=2&gt;Full Text Search&lt;/font&gt;&lt;/td&gt;
&lt;td class=show_table&gt;
&lt;div align=center&gt;&lt;font size=2&gt;&lt;/font&gt;&amp;nbsp;
&lt;/div&gt;
&lt;/td&gt;
&lt;td class=show_table&gt;
&lt;div align=center&gt;&lt;font size=2&gt;*&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td class=show_table&gt;
&lt;div align=center&gt;&lt;font size=2&gt;&lt;/font&gt;&amp;nbsp;
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class=show&gt;
&lt;td class=show_table_left&gt;
&lt;font size=2&gt;Reporting Services&lt;/font&gt;&lt;/td&gt;
&lt;td class=show_table&gt;
&lt;div align=center&gt;&lt;font size=2&gt;&lt;/font&gt;&amp;nbsp;
&lt;/div&gt;
&lt;/td&gt;
&lt;td class=show_table&gt;
&lt;div align=center&gt;&lt;font size=2&gt;*&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td class=show_table&gt;
&lt;div align=center&gt;&lt;font size=2&gt;&lt;/font&gt;&amp;nbsp;
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class=show&gt;
&lt;td class=show_table_left&gt;
&lt;font size=2&gt;Management Studio Express&lt;/font&gt;&lt;/td&gt;
&lt;td class=show_table&gt;
&lt;div align=center&gt;&lt;font size=2&gt;&lt;/font&gt;&amp;nbsp;
&lt;/div&gt;
&lt;/td&gt;
&lt;td class=show_table&gt;
&lt;div align=center&gt;&lt;font size=2&gt;*&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td class=show_table&gt;
&lt;div align=center&gt;&lt;font size=2&gt;*&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class=show&gt;
&lt;td class=show_table_left&gt;
&lt;font size=2&gt;Business Intelligence Developer Studio&lt;/font&gt;&lt;/td&gt;
&lt;td class=show_table&gt;
&lt;div align=center&gt;&lt;font size=2&gt;&lt;/font&gt;&amp;nbsp;
&lt;/div&gt;
&lt;/td&gt;
&lt;td class=show_table&gt;
&lt;div align=center&gt;&lt;font size=2&gt;&lt;/font&gt;&amp;nbsp;
&lt;/div&gt;
&lt;/td&gt;
&lt;td class=show_table&gt;
&lt;div align=center&gt;&lt;font size=2&gt;*&lt;/font&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p class=p1&gt;
&lt;font size=2&gt;Each SQL Server Express Edition product has a specific use. Read the
following sections to learn how each Express Edition product for SQL Server compares
to the others.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=p2&gt;
&lt;b&gt;&lt;font size=2&gt;SQL Server 2005 Express Edition&lt;/font&gt;&lt;/b&gt;
&lt;/p&gt;
&lt;p class=p1&gt;
&lt;font size=2&gt;How does the Express Edition of SQL Server compare to other SQL Server
Express Edition products? SQL Server Express Edition is perfect for use as an embedded
database for a desktop application that requires a fully functional SQL Server Database
Engine. SQL Server Express offers the smallest package size for faster downloads or
to conserve space on deployment media.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=p2&gt;
&lt;font size=2&gt;&lt;b&gt;SQL Server 2005 Express Edition with Advanced Services&lt;/b&gt; &lt;/font&gt;
&lt;/p&gt;
&lt;p class=p1&gt;
&lt;font size=2&gt;How does the Express Edition with Advanced Services for SQL Server compare
to the other SQL Server Express Edition products? SQL Server 2005 Express Edition
with Advanced Services is perfect for use as a backend to a small, multiuser application
that requires more advanced features such as Web reporting or Full-text Search. &lt;/font&gt;
&lt;/p&gt;
&lt;p class=p2&gt;
&lt;font size=2&gt;&lt;b&gt;SQL Server 2005 Express Edition Toolkit&lt;/b&gt; &lt;/font&gt;
&lt;/p&gt;
&lt;p class=p1&gt;
&lt;font size=2&gt;How does the Express Edition Toolkit for SQL Server compare to other
SQL Server Express Edition products? Install this package if you need the management
tools and client components, but do not need the Database Engine. &lt;/font&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;!-- End Box Content --&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td class=white_gray_r width=10&gt;
&lt;font size=2&gt;&lt;/font&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class=show&gt;
&lt;td class=white_gray_bl width=10&gt;
&lt;font size=2&gt;&lt;img height=10 src="http://msdn.microsoft.com/vstudio/images/clear.gif" width=10&gt;&lt;/font&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/p&gt;
&lt;p&gt;
Source: &lt;a href="http://msdn.microsoft.com/vstudio/express/sql/compare/default.aspx"&gt;MSDN&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Ready to download SQL Server 2005 Express with Advanced Services (has Full-Text Index)?
Its free and &lt;a href="http://msdn.microsoft.com/vstudio/express/sql/download/"&gt;here&lt;/a&gt;.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://dnnblog.venexus.com/aggbug.ashx?id=13e39982-1a2a-4094-ae7b-4ded52e2bcbf" /&gt;</description>
      <category>DotNetNuke Search;MS SQL Server</category>
    </item>
    <item>
      <trackback:ping>http://dnnblog.venexus.com/Trackback.aspx?guid=5bff1575-6cab-4064-bf61-9ab8498c5cb6</trackback:ping>
      <pingback:server>http://dnnblog.venexus.com/pingback.aspx</pingback:server>
      <pingback:target>http://dnnblog.venexus.com/PermaLink,guid,5bff1575-6cab-4064-bf61-9ab8498c5cb6.aspx</pingback:target>
      <dc:creator>Jeff Smith</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I was updating a DNN site today and at the same time was migrating the SQL Server
2000 database to SQL Server 2005. I decided to use the Copy Database Wizard since
I had never tried it and it worked great. However, the logins did not get updated
properly. I created the login in the SQL Server 2005 security, but could not access
the database via the old login. I tried doing a generic detach &gt; attach with the
same issue. Trying to edit the SQL Server Account through SQL Server Studio Management
Studio would generate an error of "Login must be specified", yet it would not give
me the ability to update (all grayed out). After doing some digging, I found the following
stored procedure that did the trick:
</p>
        <p>
EXEC sp_change_users_login 'Auto_Fix', '<strong>USERNAME</strong>', NULL, '<strong>PASSWORD</strong>' 
</p>
        <p>
After running the above, I was able to use the old login to access SQL Server. Now
back to the grind...
</p>
        <img width="0" height="0" src="http://dnnblog.venexus.com/aggbug.ashx?id=5bff1575-6cab-4064-bf61-9ab8498c5cb6" />
      </body>
      <title>SQL Server 2000 to 2005 Login Migration</title>
      <guid isPermaLink="false">http://dnnblog.venexus.com/PermaLink,guid,5bff1575-6cab-4064-bf61-9ab8498c5cb6.aspx</guid>
      <link>http://dnnblog.venexus.com/SQL+Server+2000+To+2005+Login+Migration.aspx</link>
      <pubDate>Fri, 20 Oct 2006 04:18:48 GMT</pubDate>
      <description>&lt;p&gt;
I was updating a DNN site today and at the same time was migrating the SQL Server
2000 database to SQL Server 2005. I decided to use the Copy Database Wizard since
I had never tried it and it worked great. However, the logins did not get updated
properly. I created the login in the SQL Server 2005 security, but could not access
the database via the old login. I tried doing a generic detach &amp;gt; attach with the
same issue. Trying to edit the SQL Server Account through SQL Server Studio Management
Studio would generate an error of "Login must be specified", yet it would not give
me the ability to update (all grayed out). After doing some digging, I found the following
stored procedure that did the trick:
&lt;/p&gt;
&lt;p&gt;
EXEC sp_change_users_login 'Auto_Fix', '&lt;strong&gt;USERNAME&lt;/strong&gt;', NULL, '&lt;strong&gt;PASSWORD&lt;/strong&gt;' 
&lt;/p&gt;
&lt;p&gt;
After running the above, I was able to use the old login to access SQL Server. Now
back to the grind...
&lt;/p&gt;
&lt;img width="0" height="0" src="http://dnnblog.venexus.com/aggbug.ashx?id=5bff1575-6cab-4064-bf61-9ab8498c5cb6" /&gt;</description>
      <category>MS SQL Server</category>
    </item>
    <item>
      <trackback:ping>http://dnnblog.venexus.com/Trackback.aspx?guid=14a64a2d-9e6c-4195-a400-b3ab167626a2</trackback:ping>
      <pingback:server>http://dnnblog.venexus.com/pingback.aspx</pingback:server>
      <pingback:target>http://dnnblog.venexus.com/PermaLink,guid,14a64a2d-9e6c-4195-a400-b3ab167626a2.aspx</pingback:target>
      <dc:creator>Jeff Smith</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
The following is a collection of information I have collected, found, and written
concerning <strong>MS SQL Server Full-Text Indexing</strong>. In order to keep it
in a single place, I decided to dump it all here and update as needed...
</p>
        <p>
          <em>SQL Server 2005 Full-text Indexing</em> came with several new features:
</p>
        <ul>
          <li>
Significant performance increases especially with indexing. 
</li>
          <li>
A dedicated indexing service that works directly with SQL Serrver. This speeds up
full-text operations and isolates SQL Server from changes to the search service made
by other applications.  
</li>
          <li>
Secure by default. All iFilters (the component which extracts the text from the content
stored in the rows) must be signed before SQL Server FTS will load them.  
</li>
          <li>
The ability to full-text index Indexed Views which simplifies partitioning. 
</li>
          <li>
Data definition language (DDL) statements for creating and altering full-text catalogs
and indexes. 
</li>
          <li>
Improved Language Support SQL 2005 FTS now supports indexing and searching in 23 different
languages. SQL 2005 FTS will respect language tags stored in the content which the
iFilter can interpret. You can also override the language settings on a column in
your query. 
</li>
          <li>
Accent Insensitivity-SQL FTS can now be configured to be accent insensitive so searches
on resume will match with résumé. This option is enabled by default, but can be disabled. 
</li>
          <li>
Noise Insensitivity-SQL FTS queries will no longer break when one of the search arguments
(SARGs) is a noise word. This option is enabled by default, but can be disabled. 
</li>
          <li>
Thesaurus support in the Contains and FreeText predicates.  
</li>
          <li>
Multi-Column Queries-SQL FTS supports searching a single full-text indexed column,
all full-text indexed columns, or a sub-set of the full-text indexed columns in a
single query.  
</li>
          <li>
Support for linked servers-It is now possible to query full-text catalogs on remote
server through a linked server. 
</li>
          <li>
Replication support If a table is full-text indexed you can replicate the full-text
properties to your subscriber if the subscription database is full-text enabled. 
</li>
          <li>
Backup and restored support for full-text catalogs. You can now backup your full-text
catalog and restore it on a different server. 
</li>
          <li>
Attach/detach full-text catalogs with your databases. You can include your full-text
catalog in your detached database files and optionally reattach your full-text catalogs
along with your database.  
</li>
          <li>
Properties SQL FTS 2005 now supports the indexing and querying of document properties
stored in the Image or VarBinary(MAX) data type columns.  
</li>
          <li>
Full-text indexing for XML data. 
</li>
          <li>
Troubleshooting utilities two new utilities ship with SQL 2005 to assist in the troubleshooting
efforts: <br /><ul><li>
lrtest - an executable which allows you to see how the word breakers interpret a token
at query time and at index time 
</li><li>
CiDump - a tool which allows you to view the contents of your catalog to determine
what is indexed, and how tokens are stored in the index. 
</li></ul><p>
You can find these file in C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Binn  
</p></li>
          <li>
The indexing logs are now stored as plain text in C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Log 
</li>
          <li>
Integration with SQL Profiler and logging of index operations. 
</li>
        </ul>
        <p>
If you have never used Full-text indexing, it's pretty easy to setup...
</p>
        <p>
Go into the database properties and enable full-text indexing:
</p>
        <p>
          <img src="http://dnnblog.venexus.com/content/binary/fulltextindexing1.jpg" border="0" />
        </p>
        <p>
Right click on the table and select Full-Text Index &gt; Define Full-Text Index...
</p>
        <p>
          <img src="http://dnnblog.venexus.com/content/binary/fts1.jpg" border="0" />
        </p>
        <p>
 
</p>
        <p>
Wizard will popup, click Next:
</p>
        <p>
          <img src="http://dnnblog.venexus.com/content/binary/fts2.jpg" border="0" />
        </p>
        <p>
 
</p>
        <p>
Select the Primary Key:
</p>
        <p>
          <img src="http://dnnblog.venexus.com/content/binary/fts3.jpg" border="0" />
        </p>
        <p>
 
</p>
        <p>
Select the columns you want to index:
</p>
        <p>
          <img src="http://dnnblog.venexus.com/content/binary/fts4.jpg" border="0" />
        </p>
        <p>
 
</p>
        <p>
Start a full population when complete:
</p>
        <p>
          <img src="http://dnnblog.venexus.com/content/binary/fts5.jpg" border="0" />
        </p>
        <p>
 
</p>
        <p>
Since we already had a few other catalogs, we needed to create a new one. And, this
new catalog will now become the default catalong by slecting the option.
</p>
        <p>
          <img src="http://dnnblog.venexus.com/content/binary/fts6.jpg" border="0" />
        </p>
        <p>
 
</p>
        <p>
We also wanted to create a recurring task to populate the catalog daily while we are
testing:
</p>
        <p>
          <img src="http://dnnblog.venexus.com/content/binary/fts7.jpg" border="0" />
        </p>
        <p>
 
</p>
        <p>
Just click Finish!
</p>
        <p>
          <img src="http://dnnblog.venexus.com/content/binary/fts8.jpg" border="0" />
        </p>
        <p>
Alternatively you can use the following queries to create a Full-Text Index:
</p>
        <p>
EXEC sp_fulltext_database 'enable'
</p>
        <p>
EXEC sp_fulltext_table 'BrainDump', 'create', 'BrainDumpCatalog', 'PK_BrainDump'
</p>
        <p>
EXEC sp_fulltext_column 'BrainDump', 'IndexWashedContent', 'add'
</p>
        <p>
EXEC sp_fulltext_table 'BrainDump', 'activate'
</p>
        <p>
EXEC sp_fulltext_table 'BrainDump', 'start_full'
</p>
        <p>
 
</p>
        <p>
If you go back and right click on the table and Full-Text Index, you will now see
an option to "Stop Population". This means that the catalog is being built. Depending
on the size of your table, once it has completed a population of the catalog, you
can start performing queries...
</p>
        <p>
There are four additions to SQL Server's version of SQL that allow access to full-text
catalogs:
</p>
        <ul>
          <li>
            <p>
              <tt>CONTAINS</tt> is used in the <tt>WHERE</tt> clause of a query to find matches
to exact words and phrases, with other options such as word proximity, weighted terms,
and inflection of words.
</p>
          </li>
          <li>
            <p>
              <tt>CONTAINSTABLE</tt> has the same functionality as <tt>CONTAINS</tt> but is used
in the <tt>FROM</tt> clause of a query and offers the added ability to incorporate
relevancy to the results.
</p>
          </li>
          <li>
            <p>
              <tt>FREETEXT</tt> is used in the <tt>WHERE</tt> clause of a query to perform matches
on the <i>meaning</i> of the words or phrase.
</p>
          </li>
          <li>
            <p>
              <tt>FREETEXTTABLE</tt> is similar to <tt>FREETEXT</tt> except that it's used in the <tt>FROM</tt> clause
and can add relevancy to the results.
</p>
          </li>
        </ul>
        <p>
          <strong>Example Queries:</strong>
        </p>
        <p>
SELECT IndexWashedContent FROM BrainDump WHERE CONTAINS (IndexWashedContent, ' "someword
anotherword" ')
</p>
        <p>
SELECT IndexWashedContent FROM BrainDump WHERE FREETEXT(IndexWashedContent, 'someword')
</p>
        <p>
Search using NEAR finds words that are close together:
</p>
        <p>
SELECT IndexWashedContent FROM BrainDump WHERE CONTAINS(IndexWashedContent, '"someword*"
NEAR anotherword')
</p>
        <p>
          <br />
You can also supply a weighted list of terms to CONTAINS, and it will prefer matches
with a higher weight:
</p>
        <p>
SELECT IndexWashedContent FROM BrainDump WHERE CONTAINS(IndexWashedContent, 'ISABOUT
(someword weight (.8), anotherword weight (.4), andanotherword weight (.2) )'
)
</p>
        <p>
          <strong>Full-text Indexing Performance:</strong>
        </p>
        <p>
Microsoft recommends these two settings for optimum performance: 
</p>
        <p>
The virtual memory (PAGEFILE.SYS file) setting for your operating system should be
set to an amount equal to 3 times the amount of physical RAM in the server. If you
have a non-dedicated SQL Server (a server running applications in addition to SQL
Server) then you will want to add the virtual memory needs of these other applications
to the amount calculated above.<br />
  
</p>
        <p>
The SQL Server MAX SERVER MEMORY setting should be set manually (dynamic memory allocation
is turned off) so that enough virtual memory is left for the Full-Text Search service
to run. To achieve this, select a MAX SERVER MEMORY setting that once set, leaves
enough virtual memory so that the Full-Text Search service is able to access an amount
of virtual memory equal to 1.5 times the amount of physical RAM in the server. This
will take some trial and error to achieve this setting. 
</p>
        <p>
To find out how much virtual memory is being used by SQL Server and the Full-Text
Search Service, you can use the Task Manager. By default, the Task Manager does not
display the amount of virtual memory used by a process. To see this number in Task
Manager, you must first go to the "Processes" tab. Once there, select "View", and
then "Select Columns". From the "Select Columns" dialog box, click on "Virtual Memory
Size", then "OK". Now you will be able to see the amount of virtual memory size used
by each process on your server using Task Manager. Use this information to help you
tune your server for use with the Full-Text Search service.
</p>
        <p>
          <strong>More Info:</strong>
          <br />
          <a href="http://blogs.msdn.com/shajan/archive/2005/12/09/Extending_SQL_2005_Fulltext_Search.aspx">Extending
2005 FTS</a>
        </p>
        <p>
          <a href="http://www.simple-talk.com/2006/04/21/understanding-sql-server-full-text-search-part-i/">Language
Features</a>
        </p>
        <p>
          <a href="http://www.informit.com/articles/article.asp?p=21640">Using Full-Text Search
Catalogs</a>
        </p>
        <p>
          <a href="http://www.microsoft.com/technet/prodtechnol/sql/70/maintain/sql7fts.mspx">Extensions
to SQL Server to Support Full-Text Search</a>
        </p>
        <p>
Have anything to add? Please let us know.<br /></p>
        <p>
        </p>
        <img width="0" height="0" src="http://dnnblog.venexus.com/aggbug.ashx?id=14a64a2d-9e6c-4195-a400-b3ab167626a2" />
      </body>
      <title>MS SQL Server Full-Text Indexing Info Dump</title>
      <guid isPermaLink="false">http://dnnblog.venexus.com/PermaLink,guid,14a64a2d-9e6c-4195-a400-b3ab167626a2.aspx</guid>
      <link>http://dnnblog.venexus.com/MS+SQL+Server+FullText+Indexing+Info+Dump.aspx</link>
      <pubDate>Mon, 19 Jun 2006 05:28:44 GMT</pubDate>
      <description>&lt;p&gt;
The following is a collection of information I have collected, found, and written
concerning &lt;strong&gt;MS SQL Server Full-Text Indexing&lt;/strong&gt;. In order to keep it
in a single place, I decided to dump it all here and update as needed...
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;SQL Server 2005 Full-text Indexing&lt;/em&gt; came with several new features:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Significant performance increases especially with indexing. 
&lt;li&gt;
A dedicated indexing service that works directly with SQL Serrver. This speeds up
full-text operations and isolates SQL Server from changes to the search service made
by other applications.&amp;nbsp; 
&lt;li&gt;
Secure by default. All iFilters (the component which extracts the text from the content
stored in the rows) must be signed before SQL Server FTS will load them.&amp;nbsp; 
&lt;li&gt;
The ability to full-text index Indexed Views which simplifies partitioning. 
&lt;li&gt;
Data definition language (DDL) statements for creating and altering full-text catalogs
and indexes. 
&lt;li&gt;
Improved Language Support SQL 2005 FTS now supports indexing and searching in 23 different
languages. SQL 2005 FTS will respect language tags stored in the content which the
iFilter can interpret. You can also override the language settings on a column in
your query. 
&lt;li&gt;
Accent Insensitivity-SQL FTS can now be configured to be accent insensitive so searches
on resume will match with résumé. This option is enabled by default, but can be disabled. 
&lt;li&gt;
Noise Insensitivity-SQL FTS queries will no longer break when one of the search arguments
(SARGs) is a noise word. This option is enabled by default, but can be disabled. 
&lt;li&gt;
Thesaurus support in the Contains and FreeText predicates.&amp;nbsp; 
&lt;li&gt;
Multi-Column Queries-SQL FTS supports searching a single full-text indexed column,
all full-text indexed columns, or a sub-set of the full-text indexed columns in a
single query.&amp;nbsp; 
&lt;li&gt;
Support for linked servers-It is now possible to query full-text catalogs on remote
server through a linked server. 
&lt;li&gt;
Replication support If a table is full-text indexed you can replicate the full-text
properties to your subscriber if the subscription database is full-text enabled. 
&lt;li&gt;
Backup and restored support for full-text catalogs. You can now backup your full-text
catalog and restore it on a different server. 
&lt;li&gt;
Attach/detach full-text catalogs with your databases. You can include your full-text
catalog in your detached database files and optionally reattach your full-text catalogs
along with your database.&amp;nbsp; 
&lt;li&gt;
Properties SQL FTS 2005 now supports the indexing and querying of document properties
stored in the Image or VarBinary(MAX) data type columns.&amp;nbsp; 
&lt;li&gt;
Full-text indexing for XML data. 
&lt;li&gt;
Troubleshooting utilities two new utilities ship with SQL 2005 to assist in the troubleshooting
efforts:&amp;nbsp;&lt;br&gt;
&lt;ul&gt;
&lt;li&gt;
lrtest - an executable which allows you to see how the word breakers interpret a token
at query time and at index time 
&lt;li&gt;
CiDump - a tool which allows you to view the contents of your catalog to determine
what is indexed, and how tokens are stored in the index. 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
You can find these file in C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Binn&amp;nbsp; 
&lt;/p&gt;
&lt;li&gt;
The indexing logs are now stored as plain text in C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Log 
&lt;li&gt;
Integration with SQL Profiler and logging of index operations. 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
If you have never used Full-text indexing, it's pretty easy to setup...
&lt;/p&gt;
&lt;p&gt;
Go into the database properties and enable full-text indexing:
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://dnnblog.venexus.com/content/binary/fulltextindexing1.jpg" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
Right click on the table and select Full-Text Index &amp;gt; Define Full-Text Index...
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://dnnblog.venexus.com/content/binary/fts1.jpg" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Wizard will popup, click Next:
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://dnnblog.venexus.com/content/binary/fts2.jpg" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Select the Primary Key:
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://dnnblog.venexus.com/content/binary/fts3.jpg" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Select the columns you want to index:
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://dnnblog.venexus.com/content/binary/fts4.jpg" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Start a full population when complete:
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://dnnblog.venexus.com/content/binary/fts5.jpg" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Since we already had a few other catalogs, we needed to create a new one. And, this
new catalog will now become the default catalong by slecting the option.
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://dnnblog.venexus.com/content/binary/fts6.jpg" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
We also wanted to create a recurring task to populate the catalog daily while we are
testing:
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://dnnblog.venexus.com/content/binary/fts7.jpg" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Just click Finish!
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://dnnblog.venexus.com/content/binary/fts8.jpg" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
Alternatively you can use the following queries to create a Full-Text Index:
&lt;/p&gt;
&lt;p&gt;
EXEC sp_fulltext_database 'enable'
&lt;/p&gt;
&lt;p&gt;
EXEC sp_fulltext_table 'BrainDump', 'create', 'BrainDumpCatalog', 'PK_BrainDump'
&lt;/p&gt;
&lt;p&gt;
EXEC sp_fulltext_column 'BrainDump', 'IndexWashedContent', 'add'
&lt;/p&gt;
&lt;p&gt;
EXEC sp_fulltext_table 'BrainDump', 'activate'
&lt;/p&gt;
&lt;p&gt;
EXEC sp_fulltext_table 'BrainDump', 'start_full'
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
If you go back and right click on the table and Full-Text Index, you will now see
an option to "Stop Population". This means that the catalog is being built. Depending
on the size of your table, once it has completed a population of the catalog, you
can start performing queries...
&lt;/p&gt;
&lt;p&gt;
There are four additions to SQL Server's version of SQL that allow access to full-text
catalogs:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;
&lt;tt&gt;CONTAINS&lt;/tt&gt; is used in the &lt;tt&gt;WHERE&lt;/tt&gt; clause of a query to find matches
to exact words and phrases, with other options such as word proximity, weighted terms,
and inflection of words.
&lt;/p&gt;
&lt;li&gt;
&lt;p&gt;
&lt;tt&gt;CONTAINSTABLE&lt;/tt&gt; has the same functionality as &lt;tt&gt;CONTAINS&lt;/tt&gt; but is used
in the &lt;tt&gt;FROM&lt;/tt&gt; clause of a query and offers the added ability to incorporate
relevancy to the results.
&lt;/p&gt;
&lt;li&gt;
&lt;p&gt;
&lt;tt&gt;FREETEXT&lt;/tt&gt; is used in the &lt;tt&gt;WHERE&lt;/tt&gt; clause of a query to perform matches
on the &lt;i&gt;meaning&lt;/i&gt; of the words or phrase.
&lt;/p&gt;
&lt;li&gt;
&lt;p&gt;
&lt;tt&gt;FREETEXTTABLE&lt;/tt&gt; is similar to &lt;tt&gt;FREETEXT&lt;/tt&gt; except that it's used in the &lt;tt&gt;FROM&lt;/tt&gt; clause
and can add relevancy to the results.
&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;strong&gt;Example Queries:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
SELECT IndexWashedContent FROM BrainDump WHERE CONTAINS (IndexWashedContent, ' "someword
anotherword" ')
&lt;/p&gt;
&lt;p&gt;
SELECT&amp;nbsp;IndexWashedContent FROM BrainDump WHERE FREETEXT(IndexWashedContent, 'someword')
&lt;/p&gt;
&lt;p&gt;
Search using NEAR finds words that are close together:
&lt;/p&gt;
&lt;p&gt;
SELECT IndexWashedContent FROM BrainDump WHERE CONTAINS(IndexWashedContent, '"someword*"
NEAR anotherword')
&lt;/p&gt;
&lt;p&gt;
&lt;br&gt;
You can also supply a weighted list of terms to CONTAINS, and it will prefer matches
with a higher weight:
&lt;/p&gt;
&lt;p&gt;
SELECT IndexWashedContent FROM BrainDump WHERE CONTAINS(IndexWashedContent, 'ISABOUT
(someword weight (.8),&amp;nbsp;anotherword weight (.4), andanotherword weight (.2) )'
)
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Full-text Indexing Performance:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Microsoft recommends these two settings for optimum performance: 
&lt;/p&gt;
&lt;p&gt;
The virtual memory (PAGEFILE.SYS file) setting for your operating system should be
set to an amount equal to 3 times the amount of physical RAM in the server. If you
have a non-dedicated SQL Server (a server running applications in addition to SQL
Server) then you will want to add the virtual memory needs of these other applications
to the amount calculated above.&lt;br&gt;
&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
The SQL Server MAX SERVER MEMORY setting should be set manually (dynamic memory allocation
is turned off) so that enough virtual memory is left for the Full-Text Search service
to run. To achieve this, select a MAX SERVER MEMORY setting that once set, leaves
enough virtual memory so that the Full-Text Search service is able to access an amount
of virtual memory equal to 1.5 times the amount of physical RAM in the server. This
will take some trial and error to achieve this setting. 
&lt;/p&gt;
&lt;p&gt;
To find out how much virtual memory is being used by SQL Server and the Full-Text
Search Service, you can use the Task Manager. By default, the Task Manager does not
display the amount of virtual memory used by a process. To see this number in Task
Manager, you must first go to the "Processes" tab. Once there, select "View", and
then "Select Columns". From the "Select Columns" dialog box, click on "Virtual Memory
Size", then "OK". Now you will be able to see the amount of virtual memory size used
by each process on your server using Task Manager. Use this information to help you
tune your server for use with the Full-Text Search service.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;More Info:&lt;/strong&gt;
&lt;br&gt;
&lt;a href="http://blogs.msdn.com/shajan/archive/2005/12/09/Extending_SQL_2005_Fulltext_Search.aspx"&gt;Extending
2005 FTS&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.simple-talk.com/2006/04/21/understanding-sql-server-full-text-search-part-i/"&gt;Language
Features&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.informit.com/articles/article.asp?p=21640"&gt;Using Full-Text Search
Catalogs&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.microsoft.com/technet/prodtechnol/sql/70/maintain/sql7fts.mspx"&gt;Extensions
to SQL Server to Support Full-Text Search&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Have anything to add? Please let us know.&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://dnnblog.venexus.com/aggbug.ashx?id=14a64a2d-9e6c-4195-a400-b3ab167626a2" /&gt;</description>
      <category>DotNetNuke Search;MS SQL Server</category>
    </item>
    <item>
      <trackback:ping>http://dnnblog.venexus.com/Trackback.aspx?guid=3fe27da3-cb00-493f-a3b4-0ed6a675572c</trackback:ping>
      <pingback:server>http://dnnblog.venexus.com/pingback.aspx</pingback:server>
      <pingback:target>http://dnnblog.venexus.com/PermaLink,guid,3fe27da3-cb00-493f-a3b4-0ed6a675572c.aspx</pingback:target>
      <dc:creator>Jeff Smith</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I always forget the syntax for resetting identity columns. For example, recently on a
development DNN installation, we needed to reset all identity columns back to 0 after
data testing was complete. So, as a reminder to myself, here's the SQL:
</p>
        <p>
DBCC CHECKIDENT (TableName, RESEED, 0)
</p>
        <p>
If for some reason you need to temporarily allow inserts into the Identity column,
then you can use the following:
</p>
        <p>
Set Identity_Insert TableName On
</p>
        <p>
Once you have executed your statements, you can turn it back off:
</p>
        <p>
Set Identity_Insert TableName Off
</p>
        <p>
And for the differences of Scope_Identity and @@Identity: <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/tsqlref/ts_sa-ses_6n8p.asp">http://msdn.microsoft.com/library/default.asp?url=/library/en-us/tsqlref/ts_sa-ses_6n8p.asp</a></p>
        <img width="0" height="0" src="http://dnnblog.venexus.com/aggbug.ashx?id=3fe27da3-cb00-493f-a3b4-0ed6a675572c" />
      </body>
      <title>Reset Identity, Inserting Into Identity, and differences between Scope_Identity and @@Identity</title>
      <guid isPermaLink="false">http://dnnblog.venexus.com/PermaLink,guid,3fe27da3-cb00-493f-a3b4-0ed6a675572c.aspx</guid>
      <link>http://dnnblog.venexus.com/Reset+Identity+Inserting+Into+Identity+And+Differences+Between+ScopeIdentity+And+Identity.aspx</link>
      <pubDate>Mon, 15 May 2006 14:51:36 GMT</pubDate>
      <description>&lt;p&gt;
I always forget the syntax for resetting identity columns. For example, recently on&amp;nbsp;a
development DNN installation, we needed to reset all identity columns back to 0 after
data testing was complete. So, as a reminder to myself, here's the SQL:
&lt;/p&gt;
&lt;p&gt;
DBCC CHECKIDENT (TableName, RESEED, 0)
&lt;/p&gt;
&lt;p&gt;
If for some reason you need to temporarily allow inserts into the Identity column,
then you can use the following:
&lt;/p&gt;
&lt;p&gt;
Set Identity_Insert TableName On
&lt;/p&gt;
&lt;p&gt;
Once you have executed your statements, you can turn it back off:
&lt;/p&gt;
&lt;p&gt;
Set Identity_Insert TableName Off
&lt;/p&gt;
&lt;p&gt;
And for the differences of Scope_Identity and @@Identity: &lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/tsqlref/ts_sa-ses_6n8p.asp"&gt;http://msdn.microsoft.com/library/default.asp?url=/library/en-us/tsqlref/ts_sa-ses_6n8p.asp&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://dnnblog.venexus.com/aggbug.ashx?id=3fe27da3-cb00-493f-a3b4-0ed6a675572c" /&gt;</description>
      <category>MS SQL Server</category>
    </item>
    <item>
      <trackback:ping>http://dnnblog.venexus.com/Trackback.aspx?guid=ca4036f3-c538-4086-96f1-a184127ce67a</trackback:ping>
      <pingback:server>http://dnnblog.venexus.com/pingback.aspx</pingback:server>
      <pingback:target>http://dnnblog.venexus.com/PermaLink,guid,ca4036f3-c538-4086-96f1-a184127ce67a.aspx</pingback:target>
      <dc:creator>Jeff Smith</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Below you will find a few generic SQL queries for generating reports on DNN Users. 
</p>
        <p>
          <strong>Last Activity:</strong>
          <br />
          <font color="#006400">SELECT     Users.Username, Users.FirstName,
Users.LastName, aspnet_Users.LastActivityDate<br />
FROM         aspnet_Users INNER JOIN<br />
                     
Users ON aspnet_Users.UserName = Users.Username<br />
order by aspnet_Users.LastActivityDate DESC</font>
        </p>
        <p>
          <strong>Last Login:<br /></strong>
          <font color="#006400">SELECT   Users.Username, Users.FirstName,
Users.LastName, aspnet_Membership.LastLoginDate<br />
FROM         Users INNER JOIN<br />
                     
aspnet_Users ON Users.Username = aspnet_Users.UserName INNER JOIN<br />
                     
aspnet_Membership ON aspnet_Users.UserId = aspnet_Membership.UserId<br />
ORDER BY aspnet_Membership.LastLoginDate DESC</font>
        </p>
        <p>
          <strong>New Users:<br /></strong>
          <font color="#006400">SELECT   Users.Username, Users.FirstName,
Users.LastName, aspnet_Membership.CreateDate</font>
          <br />
          <font color="#006400">FROM         Users INNER
JOIN<br />
                     
aspnet_Users ON Users.Username = aspnet_Users.UserName INNER JOIN<br />
                     
aspnet_Membership ON aspnet_Users.UserId = aspnet_Membership.UserId<br />
ORDER BY aspnet_Membership.CreateDate DESC</font>
        </p>
        <p>
          <strong>Unverified Users:</strong>
          <br />
          <font color="#006400">select USers.FirstName, Users.LastName, aspnet_Membership.Email,
aspnet_Users.UserName from aspnet_Membership, aspnet_Users, Users where aspnet_Membership.IsApproved
= 0 AND aspnet_Membership.UserID = aspnet_Users.UserId AND aspnet_Users.UserName =
Users.UserName</font>
        </p>
        <p>
          <strong>Users in Role:</strong>
          <br />
          <font color="#006400">SELECT Roles.RoleName AS [Role Name], COUNT(UserRoles.RoleID)
AS [Number in Role] FROM Roles INNER JOIN UserRoles ON UserRoles.RoleID = Roles.RoleID
GROUP BY UserRoles.RoleID, Roles.RoleName ORDER BY RoleName</font>
        </p>
        <img width="0" height="0" src="http://dnnblog.venexus.com/aggbug.ashx?id=ca4036f3-c538-4086-96f1-a184127ce67a" />
      </body>
      <title>DotNetNuke User Report Queries</title>
      <guid isPermaLink="false">http://dnnblog.venexus.com/PermaLink,guid,ca4036f3-c538-4086-96f1-a184127ce67a.aspx</guid>
      <link>http://dnnblog.venexus.com/DotNetNuke+User+Report+Queries.aspx</link>
      <pubDate>Fri, 28 Apr 2006 20:38:37 GMT</pubDate>
      <description>&lt;p&gt;
Below you will find a few generic SQL queries for generating reports on DNN Users. 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Last Activity:&lt;/strong&gt;
&lt;br&gt;
&lt;font color=#006400&gt;SELECT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Users.Username, Users.FirstName,
Users.LastName, aspnet_Users.LastActivityDate&lt;br&gt;
FROM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; aspnet_Users INNER JOIN&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
Users ON aspnet_Users.UserName = Users.Username&lt;br&gt;
order by aspnet_Users.LastActivityDate DESC&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Last Login:&lt;br&gt;
&lt;/strong&gt;&lt;font color=#006400&gt;SELECT&amp;nbsp;&amp;nbsp; Users.Username, Users.FirstName, Users.LastName,
aspnet_Membership.LastLoginDate&lt;br&gt;
FROM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Users INNER JOIN&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
aspnet_Users ON Users.Username = aspnet_Users.UserName INNER JOIN&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
aspnet_Membership ON aspnet_Users.UserId = aspnet_Membership.UserId&lt;br&gt;
ORDER BY aspnet_Membership.LastLoginDate DESC&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;New Users:&lt;br&gt;
&lt;/strong&gt;&lt;font color=#006400&gt;SELECT&amp;nbsp;&amp;nbsp; Users.Username, Users.FirstName, Users.LastName,
aspnet_Membership.CreateDate&lt;/font&gt;
&lt;br&gt;
&lt;font color=#006400&gt;FROM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Users INNER
JOIN&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
aspnet_Users ON Users.Username = aspnet_Users.UserName INNER JOIN&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
aspnet_Membership ON aspnet_Users.UserId = aspnet_Membership.UserId&lt;br&gt;
ORDER BY aspnet_Membership.CreateDate DESC&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Unverified Users:&lt;/strong&gt;
&lt;br&gt;
&lt;font color=#006400&gt;select USers.FirstName, Users.LastName, aspnet_Membership.Email,
aspnet_Users.UserName from aspnet_Membership, aspnet_Users, Users where aspnet_Membership.IsApproved
= 0 AND aspnet_Membership.UserID = aspnet_Users.UserId AND aspnet_Users.UserName =
Users.UserName&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Users in Role:&lt;/strong&gt;
&lt;br&gt;
&lt;font color=#006400&gt;SELECT Roles.RoleName AS [Role Name], COUNT(UserRoles.RoleID)
AS [Number in Role] FROM Roles INNER JOIN UserRoles ON UserRoles.RoleID = Roles.RoleID
GROUP BY UserRoles.RoleID, Roles.RoleName ORDER BY RoleName&lt;/font&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://dnnblog.venexus.com/aggbug.ashx?id=ca4036f3-c538-4086-96f1-a184127ce67a" /&gt;</description>
      <category>DotNetNuke Modules;MS SQL Server</category>
    </item>
    <item>
      <trackback:ping>http://dnnblog.venexus.com/Trackback.aspx?guid=7c6ae9fc-8ca8-4e69-8696-e0d3c5f6dc8e</trackback:ping>
      <pingback:server>http://dnnblog.venexus.com/pingback.aspx</pingback:server>
      <pingback:target>http://dnnblog.venexus.com/PermaLink,guid,7c6ae9fc-8ca8-4e69-8696-e0d3c5f6dc8e.aspx</pingback:target>
      <dc:creator>Jeff Smith</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
We needed a Proper Case Function that would change the first letter of each word to
an uppercase letter.
</p>
        <p>
          <strong>Example:</strong>
        </p>
        <p>
some text = Some Text
</p>
        <p>
          <strong>Here is the function we added:</strong>
        </p>
        <p>
          <font color="#008000">------------------------------------------------------</font>
        </p>
        <font color="#0000ff" size="2">
          <p>
CREATE
</p>
        </font>
        <font color="#000000" size="2">
        </font>
        <font color="#0000ff" size="2">FUNCTION</font>
        <font color="#000000" size="2"> dbo</font>
        <font color="#808080" size="2">.</font>
        <font color="#000000" size="2">Proper </font>
        <font color="#808080" size="2">(</font>
        <font color="#000000" size="2">@tcString </font>
        <font color="#0000ff" size="2">VARCHAR</font>
        <font color="#808080" size="2">(</font>
        <font color="#000000" size="2">100</font>
        <font color="#808080" size="2">))
</font>
        <font size="2">
          <p>
          </p>
        </font>
        <font color="#0000ff" size="2">RETURNS</font>
        <font size="2">
        </font>
        <font color="#0000ff" size="2">VARCHAR</font>
        <font color="#808080" size="2">(</font>
        <font size="2">100</font>
        <font color="#808080" size="2">)</font>
        <font size="2">
        </font>
        <font color="#0000ff" size="2">AS
<p>
BEGIN
</p></font>
        <font size="2">
          <p>
          </p>
        </font>
        <font color="#008000" size="2">-- Scratch variables used for processing
</font>
        <font size="2">
          <p>
          </p>
        </font>
        <font color="#0000ff" size="2">DECLARE</font>
        <font size="2"> @outputString </font>
        <font color="#0000ff" size="2">VARCHAR</font>
        <font color="#808080" size="2">(</font>
        <font size="2">100</font>
        <font color="#808080" size="2">)
</font>
        <font size="2">
          <p>
          </p>
        </font>
        <font color="#0000ff" size="2">DECLARE</font>
        <font size="2"> @stringLength </font>
        <font color="#0000ff" size="2">INT
</font>
        <font size="2">
          <p>
          </p>
        </font>
        <font color="#0000ff" size="2">DECLARE</font>
        <font size="2"> @loopCounter </font>
        <font color="#0000ff" size="2">INT
</font>
        <font size="2">
          <p>
          </p>
        </font>
        <font color="#0000ff" size="2">DECLARE</font>
        <font size="2"> @charAtPos </font>
        <font color="#0000ff" size="2">VARCHAR</font>
        <font color="#808080" size="2">(</font>
        <font size="2">1</font>
        <font color="#808080" size="2">)
</font>
        <font size="2">
          <p>
          </p>
        </font>
        <font color="#0000ff" size="2">DECLARE</font>
        <font size="2"> @wordStart </font>
        <font color="#0000ff" size="2">INT
</font>
        <font size="2">
          <p>
          </p>
        </font>
        <font color="#008000" size="2">-- If the incoming string is NULL, return
an error
</font>
        <font size="2">
          <p>
          </p>
        </font>
        <font color="#0000ff" size="2">IF</font>
        <font size="2">
        </font>
        <font color="#808080" size="2">(</font>
        <font size="2">@tcString </font>
        <font color="#808080" size="2">IS</font>
        <font size="2">
        </font>
        <font color="#808080" size="2">NULL)
</font>
        <font size="2">
          <p>
          </p>
        </font>
        <font color="#0000ff" size="2">RETURN</font>
        <font size="2">
        </font>
        <font color="#808080" size="2">(</font>
        <font color="#ff0000" size="2">'(no
string passed)'</font>
        <font color="#808080" size="2">)
</font>
        <font size="2">
          <p>
          </p>
        </font>
        <font color="#008000" size="2">-- Initialize the scratch variables
</font>
        <font size="2">
          <p>
          </p>
        </font>
        <font color="#0000ff" size="2">SET</font>
        <font size="2"> @outputString </font>
        <font color="#808080" size="2">=</font>
        <font size="2">
        </font>
        <font color="#ff0000" size="2">''
</font>
        <font size="2">
          <p>
          </p>
        </font>
        <font color="#0000ff" size="2">SET</font>
        <font size="2"> @stringLength </font>
        <font color="#808080" size="2">=</font>
        <font size="2">
        </font>
        <font color="#ff00ff" size="2">LEN</font>
        <font size="2">
        </font>
        <font color="#808080" size="2">(</font>
        <font size="2">@tcString</font>
        <font color="#808080" size="2">)
</font>
        <font size="2">
          <p>
          </p>
        </font>
        <font color="#0000ff" size="2">SET</font>
        <font size="2"> @loopCounter </font>
        <font color="#808080" size="2">=</font>
        <font size="2"> 1
<p></p></font>
        <font color="#0000ff" size="2">SET</font>
        <font size="2"> @wordStart </font>
        <font color="#808080" size="2">=</font>
        <font size="2"> 1
<p></p></font>
        <font color="#008000" size="2">-- Loop over the string
</font>
        <font size="2">
          <p>
          </p>
        </font>
        <font color="#0000ff" size="2">WHILE</font>
        <font size="2">
        </font>
        <font color="#808080" size="2">(</font>
        <font size="2">@loopCounter </font>
        <font color="#808080" size="2">&lt;=</font>
        <font size="2"> @stringLength</font>
        <font color="#808080" size="2">)
</font>
        <font size="2">
          <p>
          </p>
        </font>
        <font color="#0000ff" size="2">BEGIN
</font>
        <font size="2">
          <p>
          </p>
        </font>
        <font color="#008000" size="2">-- Get the single character off the string
</font>
        <font size="2">
          <p>
          </p>
        </font>
        <font color="#0000ff" size="2">SET</font>
        <font size="2"> @charAtPos </font>
        <font color="#808080" size="2">=</font>
        <font size="2">
        </font>
        <font color="#ff00ff" size="2">SUBSTRING</font>
        <font size="2">
        </font>
        <font color="#808080" size="2">(</font>
        <font size="2">@tcString</font>
        <font color="#808080" size="2">,</font>
        <font size="2"> @loopCounter</font>
        <font color="#808080" size="2">,</font>
        <font size="2"> 1</font>
        <font color="#808080" size="2">)
</font>
        <font size="2">
          <p>
          </p>
        </font>
        <font color="#008000" size="2">-- If we are the start of a word, uppercase
the character
</font>
        <font size="2">
          <p>
          </p>
        </font>
        <font color="#008000" size="2">-- and reset the work indicator
</font>
        <font size="2">
          <p>
          </p>
        </font>
        <font color="#0000ff" size="2">IF</font>
        <font size="2">
        </font>
        <font color="#808080" size="2">(</font>
        <font size="2">@wordStart </font>
        <font color="#808080" size="2">=</font>
        <font size="2"> 1</font>
        <font color="#808080" size="2">)
</font>
        <font size="2">
          <p>
          </p>
        </font>
        <font color="#0000ff" size="2">BEGIN
</font>
        <font size="2">
          <p>
          </p>
        </font>
        <font color="#0000ff" size="2">SET</font>
        <font size="2"> @charAtPos </font>
        <font color="#808080" size="2">=</font>
        <font size="2">
        </font>
        <font color="#ff00ff" size="2">UPPER</font>
        <font size="2">
        </font>
        <font color="#808080" size="2">(</font>
        <font size="2">@charAtPos</font>
        <font color="#808080" size="2">)
</font>
        <font size="2">
          <p>
          </p>
        </font>
        <font color="#0000ff" size="2">SET</font>
        <font size="2"> @wordStart </font>
        <font color="#808080" size="2">=</font>
        <font size="2"> 0
<p></p></font>
        <font color="#0000ff" size="2">END
</font>
        <font size="2">
          <p>
          </p>
        </font>
        <font color="#008000" size="2">-- If we encounter a white space, indicate
that we
</font>
        <font size="2">
          <p>
          </p>
        </font>
        <font color="#008000" size="2">-- are about to start a word
</font>
        <font size="2">
          <p>
          </p>
        </font>
        <font color="#0000ff" size="2">IF</font>
        <font size="2">
        </font>
        <font color="#808080" size="2">(</font>
        <font size="2">@charAtPos </font>
        <font color="#808080" size="2">=</font>
        <font size="2">
        </font>
        <font color="#ff0000" size="2">'
'</font>
        <font color="#808080" size="2">)
</font>
        <font size="2">
          <p>
          </p>
        </font>
        <font color="#0000ff" size="2">SET</font>
        <font size="2"> @wordStart </font>
        <font color="#808080" size="2">=</font>
        <font size="2"> 1
<p></p></font>
        <font color="#008000" size="2">-- Form the output string
</font>
        <font size="2">
          <p>
          </p>
        </font>
        <font color="#0000ff" size="2">SET</font>
        <font size="2"> @outputString </font>
        <font color="#808080" size="2">=</font>
        <font size="2"> @outputString </font>
        <font color="#808080" size="2">+</font>
        <font size="2"> @charAtPos
<p></p></font>
        <font color="#0000ff" size="2">SET</font>
        <font size="2"> @loopCounter </font>
        <font color="#808080" size="2">=</font>
        <font size="2"> @loopCounter </font>
        <font color="#808080" size="2">+</font>
        <font size="2"> 1
<p></p></font>
        <font color="#0000ff" size="2">END
</font>
        <font size="2">
          <p>
          </p>
        </font>
        <font color="#008000" size="2">-- Return the final output
</font>
        <font size="2">
          <p>
          </p>
        </font>
        <font color="#0000ff" size="2">RETURN</font>
        <font size="2">
        </font>
        <font color="#808080" size="2">(</font>
        <font size="2">@outputString</font>
        <font color="#808080" size="2">)
</font>
        <font color="#0000ff" size="2">
          <p>
END
</p>
          <p>
            <font color="#008000">------------------------------------------------------</font>
          </p>
          <p>
            <font color="#000000">I am not sure where I found this function to give it the proper
credit, but it's been around for a while. I had used it on a SQL Server 2000 database
to change all uppercase US State names to lowercase, then running them through the
Proper function. Recently I had to search several databases to find the function so
I could use it on a SQL Server 2005 database. So, in case I need it
again, I decided to save it here....</font>
          </p>
        </font>
        <img width="0" height="0" src="http://dnnblog.venexus.com/aggbug.ashx?id=7c6ae9fc-8ca8-4e69-8696-e0d3c5f6dc8e" />
      </body>
      <title>Proper Case Function</title>
      <guid isPermaLink="false">http://dnnblog.venexus.com/PermaLink,guid,7c6ae9fc-8ca8-4e69-8696-e0d3c5f6dc8e.aspx</guid>
      <link>http://dnnblog.venexus.com/Proper+Case+Function.aspx</link>
      <pubDate>Sat, 15 Apr 2006 14:59:31 GMT</pubDate>
      <description>&lt;p&gt;
We needed a Proper Case Function that would change the first letter of each word to
an uppercase letter.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Example:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
some text = Some Text
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Here is the function we added:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#008000&gt;------------------------------------------------------&lt;/font&gt;
&lt;/p&gt;
&lt;font color=#0000ff size=2&gt; 
&lt;p&gt;
CREATE
&lt;/font&gt;&lt;font color=#000000 size=2&gt; &lt;/font&gt;&lt;font color=#0000ff size=2&gt;FUNCTION&lt;/font&gt;&lt;font color=#000000 size=2&gt; dbo&lt;/font&gt;&lt;font color=#808080 size=2&gt;.&lt;/font&gt;&lt;font color=#000000 size=2&gt;Proper &lt;/font&gt;&lt;font color=#808080 size=2&gt;(&lt;/font&gt;&lt;font color=#000000 size=2&gt;@tcString &lt;/font&gt;&lt;font color=#0000ff size=2&gt;VARCHAR&lt;/font&gt;&lt;font color=#808080 size=2&gt;(&lt;/font&gt;&lt;font color=#000000 size=2&gt;100&lt;/font&gt;&lt;font color=#808080 size=2&gt;))&gt;
&lt;/font&gt;&lt;font size=2&gt; 
&lt;p&gt;
&lt;/font&gt;&lt;font color=#0000ff size=2&gt;RETURNS&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#0000ff size=2&gt;VARCHAR&lt;/font&gt;&lt;font color=#808080 size=2&gt;(&lt;/font&gt;&lt;font size=2&gt;100&lt;/font&gt;&lt;font color=#808080 size=2&gt;)&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#0000ff size=2&gt;AS&gt;
&lt;p&gt;
BEGIN
&lt;/p&gt;
&lt;/font&gt;&lt;font size=2&gt; 
&lt;p&gt;
&lt;/font&gt;&lt;font color=#008000 size=2&gt;-- Scratch variables used for processing&gt;
&lt;/font&gt;&lt;font size=2&gt; 
&lt;p&gt;
&lt;/font&gt;&lt;font color=#0000ff size=2&gt;DECLARE&lt;/font&gt;&lt;font size=2&gt; @outputString &lt;/font&gt;&lt;font color=#0000ff size=2&gt;VARCHAR&lt;/font&gt;&lt;font color=#808080 size=2&gt;(&lt;/font&gt;&lt;font size=2&gt;100&lt;/font&gt;&lt;font color=#808080 size=2&gt;)&gt;
&lt;/font&gt;&lt;font size=2&gt; 
&lt;p&gt;
&lt;/font&gt;&lt;font color=#0000ff size=2&gt;DECLARE&lt;/font&gt;&lt;font size=2&gt; @stringLength &lt;/font&gt;&lt;font color=#0000ff size=2&gt;INT&gt;
&lt;/font&gt;&lt;font size=2&gt; 
&lt;p&gt;
&lt;/font&gt;&lt;font color=#0000ff size=2&gt;DECLARE&lt;/font&gt;&lt;font size=2&gt; @loopCounter &lt;/font&gt;&lt;font color=#0000ff size=2&gt;INT&gt;
&lt;/font&gt;&lt;font size=2&gt; 
&lt;p&gt;
&lt;/font&gt;&lt;font color=#0000ff size=2&gt;DECLARE&lt;/font&gt;&lt;font size=2&gt; @charAtPos &lt;/font&gt;&lt;font color=#0000ff size=2&gt;VARCHAR&lt;/font&gt;&lt;font color=#808080 size=2&gt;(&lt;/font&gt;&lt;font size=2&gt;1&lt;/font&gt;&lt;font color=#808080 size=2&gt;)&gt;
&lt;/font&gt;&lt;font size=2&gt; 
&lt;p&gt;
&lt;/font&gt;&lt;font color=#0000ff size=2&gt;DECLARE&lt;/font&gt;&lt;font size=2&gt; @wordStart &lt;/font&gt;&lt;font color=#0000ff size=2&gt;INT&gt;
&lt;/font&gt;&lt;font size=2&gt; 
&lt;p&gt;
&lt;/font&gt;&lt;font color=#008000 size=2&gt;-- If the incoming string is NULL, return an error&gt;
&lt;/font&gt;&lt;font size=2&gt; 
&lt;p&gt;
&lt;/font&gt;&lt;font color=#0000ff size=2&gt;IF&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#808080 size=2&gt;(&lt;/font&gt;&lt;font size=2&gt;@tcString &lt;/font&gt;&lt;font color=#808080 size=2&gt;IS&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#808080 size=2&gt;NULL)&gt;
&lt;/font&gt;&lt;font size=2&gt; 
&lt;p&gt;
&lt;/font&gt;&lt;font color=#0000ff size=2&gt;RETURN&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#808080 size=2&gt;(&lt;/font&gt;&lt;font color=#ff0000 size=2&gt;'(no
string passed)'&lt;/font&gt;&lt;font color=#808080 size=2&gt;)&gt;
&lt;/font&gt;&lt;font size=2&gt; 
&lt;p&gt;
&lt;/font&gt;&lt;font color=#008000 size=2&gt;-- Initialize the scratch variables&gt;
&lt;/font&gt;&lt;font size=2&gt; 
&lt;p&gt;
&lt;/font&gt;&lt;font color=#0000ff size=2&gt;SET&lt;/font&gt;&lt;font size=2&gt; @outputString &lt;/font&gt;&lt;font color=#808080 size=2&gt;=&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;''&gt;
&lt;/font&gt;&lt;font size=2&gt; 
&lt;p&gt;
&lt;/font&gt;&lt;font color=#0000ff size=2&gt;SET&lt;/font&gt;&lt;font size=2&gt; @stringLength &lt;/font&gt;&lt;font color=#808080 size=2&gt;=&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#ff00ff size=2&gt;LEN&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#808080 size=2&gt;(&lt;/font&gt;&lt;font size=2&gt;@tcString&lt;/font&gt;&lt;font color=#808080 size=2&gt;)&gt;
&lt;/font&gt;&lt;font size=2&gt; 
&lt;p&gt;
&lt;/font&gt;&lt;font color=#0000ff size=2&gt;SET&lt;/font&gt;&lt;font size=2&gt; @loopCounter &lt;/font&gt;&lt;font color=#808080 size=2&gt;=&lt;/font&gt;&lt;font size=2&gt; 1&gt;
&lt;p&gt;
&lt;/font&gt;&lt;font color=#0000ff size=2&gt;SET&lt;/font&gt;&lt;font size=2&gt; @wordStart &lt;/font&gt;&lt;font color=#808080 size=2&gt;=&lt;/font&gt;&lt;font size=2&gt; 1&gt;
&lt;p&gt;
&lt;/font&gt;&lt;font color=#008000 size=2&gt;-- Loop over the string&gt;
&lt;/font&gt;&lt;font size=2&gt; 
&lt;p&gt;
&lt;/font&gt;&lt;font color=#0000ff size=2&gt;WHILE&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#808080 size=2&gt;(&lt;/font&gt;&lt;font size=2&gt;@loopCounter &lt;/font&gt;&lt;font color=#808080 size=2&gt;&amp;lt;=&lt;/font&gt;&lt;font size=2&gt; @stringLength&lt;/font&gt;&lt;font color=#808080 size=2&gt;)&gt;
&lt;/font&gt;&lt;font size=2&gt; 
&lt;p&gt;
&lt;/font&gt;&lt;font color=#0000ff size=2&gt;BEGIN&gt;
&lt;/font&gt;&lt;font size=2&gt; 
&lt;p&gt;
&lt;/font&gt;&lt;font color=#008000 size=2&gt;-- Get the single character off the string&gt;
&lt;/font&gt;&lt;font size=2&gt; 
&lt;p&gt;
&lt;/font&gt;&lt;font color=#0000ff size=2&gt;SET&lt;/font&gt;&lt;font size=2&gt; @charAtPos &lt;/font&gt;&lt;font color=#808080 size=2&gt;=&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#ff00ff size=2&gt;SUBSTRING&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#808080 size=2&gt;(&lt;/font&gt;&lt;font size=2&gt;@tcString&lt;/font&gt;&lt;font color=#808080 size=2&gt;,&lt;/font&gt;&lt;font size=2&gt; @loopCounter&lt;/font&gt;&lt;font color=#808080 size=2&gt;,&lt;/font&gt;&lt;font size=2&gt; 1&lt;/font&gt;&lt;font color=#808080 size=2&gt;)&gt;
&lt;/font&gt;&lt;font size=2&gt; 
&lt;p&gt;
&lt;/font&gt;&lt;font color=#008000 size=2&gt;-- If we are the start of a word, uppercase the
character&gt;
&lt;/font&gt;&lt;font size=2&gt; 
&lt;p&gt;
&lt;/font&gt;&lt;font color=#008000 size=2&gt;-- and reset the work indicator&gt;
&lt;/font&gt;&lt;font size=2&gt; 
&lt;p&gt;
&lt;/font&gt;&lt;font color=#0000ff size=2&gt;IF&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#808080 size=2&gt;(&lt;/font&gt;&lt;font size=2&gt;@wordStart &lt;/font&gt;&lt;font color=#808080 size=2&gt;=&lt;/font&gt;&lt;font size=2&gt; 1&lt;/font&gt;&lt;font color=#808080 size=2&gt;)&gt;
&lt;/font&gt;&lt;font size=2&gt; 
&lt;p&gt;
&lt;/font&gt;&lt;font color=#0000ff size=2&gt;BEGIN&gt;
&lt;/font&gt;&lt;font size=2&gt; 
&lt;p&gt;
&lt;/font&gt;&lt;font color=#0000ff size=2&gt;SET&lt;/font&gt;&lt;font size=2&gt; @charAtPos &lt;/font&gt;&lt;font color=#808080 size=2&gt;=&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#ff00ff size=2&gt;UPPER&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#808080 size=2&gt;(&lt;/font&gt;&lt;font size=2&gt;@charAtPos&lt;/font&gt;&lt;font color=#808080 size=2&gt;)&gt;
&lt;/font&gt;&lt;font size=2&gt; 
&lt;p&gt;
&lt;/font&gt;&lt;font color=#0000ff size=2&gt;SET&lt;/font&gt;&lt;font size=2&gt; @wordStart &lt;/font&gt;&lt;font color=#808080 size=2&gt;=&lt;/font&gt;&lt;font size=2&gt; 0&gt;
&lt;p&gt;
&lt;/font&gt;&lt;font color=#0000ff size=2&gt;END&gt;
&lt;/font&gt;&lt;font size=2&gt; 
&lt;p&gt;
&lt;/font&gt;&lt;font color=#008000 size=2&gt;-- If we encounter a white space, indicate that
we&gt;
&lt;/font&gt;&lt;font size=2&gt; 
&lt;p&gt;
&lt;/font&gt;&lt;font color=#008000 size=2&gt;-- are about to start a word&gt;
&lt;/font&gt;&lt;font size=2&gt; 
&lt;p&gt;
&lt;/font&gt;&lt;font color=#0000ff size=2&gt;IF&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#808080 size=2&gt;(&lt;/font&gt;&lt;font size=2&gt;@charAtPos &lt;/font&gt;&lt;font color=#808080 size=2&gt;=&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;'
'&lt;/font&gt;&lt;font color=#808080 size=2&gt;)&gt;
&lt;/font&gt;&lt;font size=2&gt; 
&lt;p&gt;
&lt;/font&gt;&lt;font color=#0000ff size=2&gt;SET&lt;/font&gt;&lt;font size=2&gt; @wordStart &lt;/font&gt;&lt;font color=#808080 size=2&gt;=&lt;/font&gt;&lt;font size=2&gt; 1&gt;
&lt;p&gt;
&lt;/font&gt;&lt;font color=#008000 size=2&gt;-- Form the output string&gt;
&lt;/font&gt;&lt;font size=2&gt; 
&lt;p&gt;
&lt;/font&gt;&lt;font color=#0000ff size=2&gt;SET&lt;/font&gt;&lt;font size=2&gt; @outputString &lt;/font&gt;&lt;font color=#808080 size=2&gt;=&lt;/font&gt;&lt;font size=2&gt; @outputString &lt;/font&gt;&lt;font color=#808080 size=2&gt;+&lt;/font&gt;&lt;font size=2&gt; @charAtPos&gt;
&lt;p&gt;
&lt;/font&gt;&lt;font color=#0000ff size=2&gt;SET&lt;/font&gt;&lt;font size=2&gt; @loopCounter &lt;/font&gt;&lt;font color=#808080 size=2&gt;=&lt;/font&gt;&lt;font size=2&gt; @loopCounter &lt;/font&gt;&lt;font color=#808080 size=2&gt;+&lt;/font&gt;&lt;font size=2&gt; 1&gt;
&lt;p&gt;
&lt;/font&gt;&lt;font color=#0000ff size=2&gt;END&gt;
&lt;/font&gt;&lt;font size=2&gt; 
&lt;p&gt;
&lt;/font&gt;&lt;font color=#008000 size=2&gt;-- Return the final output&gt;
&lt;/font&gt;&lt;font size=2&gt; 
&lt;p&gt;
&lt;/font&gt;&lt;font color=#0000ff size=2&gt;RETURN&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#808080 size=2&gt;(&lt;/font&gt;&lt;font size=2&gt;@outputString&lt;/font&gt;&lt;font color=#808080 size=2&gt;)&gt;
&lt;/font&gt;&lt;font color=#0000ff size=2&gt; 
&lt;p&gt;
END
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#008000&gt;------------------------------------------------------&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;I am not sure where I found this function to give it the proper
credit, but it's been around for a while. I had used it on a SQL Server 2000 database
to change all uppercase US State names to lowercase, then running them through the
Proper function. Recently I had to search several databases to find the function so
I could&amp;nbsp;use&amp;nbsp;it&amp;nbsp;on a SQL Server 2005 database. So, in case I need it
again, I decided to save it here....&lt;/font&gt;
&lt;/p&gt;
&lt;/font&gt;&lt;img width="0" height="0" src="http://dnnblog.venexus.com/aggbug.ashx?id=7c6ae9fc-8ca8-4e69-8696-e0d3c5f6dc8e" /&gt;</description>
      <category>MS SQL Server</category>
    </item>
    <item>
      <trackback:ping>http://dnnblog.venexus.com/Trackback.aspx?guid=693f071c-99b6-4aa0-9a90-10844a83ae1c</trackback:ping>
      <pingback:server>http://dnnblog.venexus.com/pingback.aspx</pingback:server>
      <pingback:target>http://dnnblog.venexus.com/PermaLink,guid,693f071c-99b6-4aa0-9a90-10844a83ae1c.aspx</pingback:target>
      <dc:creator>Jeff Smith</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
For a project we are working on, we have a backend process that needed to get the
PostalCode from ASPNET_Profile for a UserName. Thanks to <a href="http://www.dotnetslackers.com/SQL/re-12463_Accessing_Profile_Data_in_the_aspnet_Profile_table_using_TSQL_Queries.aspx">David
Silverlights post on DotNetSlackers.com</a> we added the following functions
to our database:
</p>
        <p>
 --!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
</p>
        <p>
          <font color="#008000">CREATE FUNCTION dbo.fn_GetElement<br />
(<br />
@ord AS INT,<br />
@str AS VARCHAR(8000),<br />
@delim AS VARCHAR(1) )<br />
RETURNS INT<br />
AS<br />
BEGIN<br />
  -- If input is invalid, return null.<br />
  IF  @str IS NULL<br />
      OR LEN(@str) = 0<br />
      OR @ord IS NULL<br />
      OR @ord &lt; 1<br />
      -- @ord &gt; [is the] expression that calculates the
number of elements.<br />
      OR @ord &gt; LEN(@str) - LEN(REPLACE(@str, @delim,
'')) + 1<br />
    RETURN NULL<br />
  DECLARE @pos AS INT, @curord AS INT<br />
  SELECT @pos = 1, @curord = 1<br />
  -- Find next element's start position and increment index.<br />
  WHILE @curord &lt; @ord<br />
    SELECT<br />
      @pos    = CHARINDEX(@delim, @str, @pos)
+ 1,<br />
      @curord = @curord + 1<br />
  RETURN    CAST(SUBSTRING(@str, @pos, CHARINDEX(@delim, @str
+ @delim, @pos) - @pos) AS INT)<br />
END</font>
        </p>
        <p>
 --!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
</p>
        <p>
          <font color="#008000">CREATE FUNCTION dbo.fn_GetProfileElement<br />
(<br />
@fieldName AS NVARCHAR(100),<br />
@fields AS NVARCHAR(4000),<br />
@values AS NVARCHAR(4000))<br />
RETURNS NVARCHAR(4000)<br />
AS<br />
BEGIN</font>
        </p>
        <p>
          <font color="#008000">  -- If input is invalid, return null.<br />
  IF  @fieldName IS NULL<br />
      OR LEN(@fieldName) = 0<br />
      OR @fields IS NULL<br />
      OR LEN(@fields) = 0<br />
      OR @values IS NULL<br />
      OR LEN(@values) = 0<br />
    RETURN NULL</font>
        </p>
        <p>
          <font color="#008000">-- locate FieldName in Fields<br />
DECLARE @fieldNameToken AS NVARCHAR(20)<br />
DECLARE @fieldNameStart AS INTEGER, @valueStart AS INTEGER, @valueLength AS INTEGER</font>
        </p>
        <p>
          <font color="#008000">-- Only handle string type fields (:S:)<br />
SET @fieldNameStart = CHARINDEX(@fieldName + ':S',@Fields,0)</font>
        </p>
        <p>
          <font color="#008000">-- If field is not found, return null<br />
IF @fieldNameStart = 0 RETURN NULL<br />
SET @fieldNameStart = @fieldNameStart + LEN(@fieldName) + 3</font>
        </p>
        <p>
          <font color="#008000">-- Get the field token which I've defined as the start of the
field offset to the end of the length<br />
SET @fieldNameToken = SUBSTRING(@Fields,@fieldNameStart,LEN(@Fields)-@fieldNameStart)</font>
        </p>
        <p>
          <font color="#008000">-- Get the values for the offset and length<br />
SET @valueStart = dbo.fn_getelement(1,@fieldNameToken,':')<br />
SET @valueLength = dbo.fn_getelement(2,@fieldNameToken,':')</font>
        </p>
        <p>
          <font color="#008000">-- Check for sane values, 0 length means the profile item was
stored, just no data<br />
IF @valueLength = 0 RETURN ''</font>
        </p>
        <p>
          <font color="#008000">-- Return the string<br />
RETURN SUBSTRING(@values, @valueStart+1, @valueLength)<br />
END</font>
        </p>
        <p>
 --!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
</p>
        <p>
Then a stored procedure was created to retrieve the users PostalCode by passing in
the UserName.
</p>
        <p>
          <font color="#008000">SET ANSI_NULLS ON<br />
GO<br />
SET QUOTED_IDENTIFIER ON<br />
GO</font>
        </p>
        <p>
          <font color="#008000">CREATE PROCEDURE GetPostalCodeFromUserName<br />
 @UserName nvarchar(50)<br />
AS<br />
BEGIN<br />
 SET NOCOUNT ON;</font>
          <font color="#008000">
            <br />
 SELECT dbo.fn_GetProfileElement(N'PostalCode', dbo.aspnet_Profile.PropertyNames,
dbo.aspnet_Profile.PropertyValuesString) AS PostalCode FROM dbo.aspnet_Profile INNER
JOIN dbo.aspnet_Users ON dbo.aspnet_Profile.UserId = dbo.aspnet_Users.UserId where
dbo.aspnet_Users.UserName = @UserName</font>
        </p>
        <p>
          <font color="#008000">END<br />
GO</font>
        </p>
        <img width="0" height="0" src="http://dnnblog.venexus.com/aggbug.ashx?id=693f071c-99b6-4aa0-9a90-10844a83ae1c" />
      </body>
      <title>Getting the User's PostalCode from ASPNET_Profile</title>
      <guid isPermaLink="false">http://dnnblog.venexus.com/PermaLink,guid,693f071c-99b6-4aa0-9a90-10844a83ae1c.aspx</guid>
      <link>http://dnnblog.venexus.com/Getting+The+Users+PostalCode+From+ASPNETProfile.aspx</link>
      <pubDate>Sun, 26 Feb 2006 00:36:06 GMT</pubDate>
      <description>&lt;p&gt;
For a project we are working on, we have a backend process that needed to get the
PostalCode from ASPNET_Profile for a UserName. Thanks to &lt;a href="http://www.dotnetslackers.com/SQL/re-12463_Accessing_Profile_Data_in_the_aspnet_Profile_table_using_TSQL_Queries.aspx"&gt;David
Silverlights post on DotNetSlackers.com&lt;/a&gt;&amp;nbsp;we added the following functions
to our database:
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;--!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#008000&gt;CREATE FUNCTION dbo.fn_GetElement&lt;br&gt;
(&lt;br&gt;
@ord AS INT,&lt;br&gt;
@str AS VARCHAR(8000),&lt;br&gt;
@delim AS VARCHAR(1) )&lt;br&gt;
RETURNS INT&lt;br&gt;
AS&lt;br&gt;
BEGIN&lt;br&gt;
&amp;nbsp; -- If input is invalid, return null.&lt;br&gt;
&amp;nbsp; IF&amp;nbsp; @str IS NULL&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OR LEN(@str) = 0&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OR @ord IS NULL&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OR @ord &amp;lt; 1&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- @ord &amp;gt; [is the] expression that calculates the
number of elements.&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OR @ord &amp;gt; LEN(@str) - LEN(REPLACE(@str, @delim,
'')) + 1&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; RETURN NULL&lt;br&gt;
&amp;nbsp; DECLARE @pos AS INT, @curord AS INT&lt;br&gt;
&amp;nbsp; SELECT @pos = 1, @curord = 1&lt;br&gt;
&amp;nbsp; -- Find next element's start position and increment index.&lt;br&gt;
&amp;nbsp; WHILE @curord &amp;lt; @ord&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; SELECT&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; @pos&amp;nbsp;&amp;nbsp;&amp;nbsp; = CHARINDEX(@delim, @str, @pos)
+ 1,&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; @curord = @curord + 1&lt;br&gt;
&amp;nbsp; RETURN&amp;nbsp;&amp;nbsp;&amp;nbsp; CAST(SUBSTRING(@str, @pos, CHARINDEX(@delim, @str
+ @delim, @pos) - @pos) AS INT)&lt;br&gt;
END&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;--!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#008000&gt;CREATE FUNCTION dbo.fn_GetProfileElement&lt;br&gt;
(&lt;br&gt;
@fieldName AS NVARCHAR(100),&lt;br&gt;
@fields AS NVARCHAR(4000),&lt;br&gt;
@values AS NVARCHAR(4000))&lt;br&gt;
RETURNS NVARCHAR(4000)&lt;br&gt;
AS&lt;br&gt;
BEGIN&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#008000&gt;&amp;nbsp; -- If input is invalid, return null.&lt;br&gt;
&amp;nbsp; IF&amp;nbsp; @fieldName IS NULL&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OR LEN(@fieldName) = 0&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OR @fields IS NULL&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OR LEN(@fields) = 0&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OR @values IS NULL&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OR LEN(@values) = 0&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; RETURN NULL&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#008000&gt;-- locate FieldName in Fields&lt;br&gt;
DECLARE @fieldNameToken AS NVARCHAR(20)&lt;br&gt;
DECLARE @fieldNameStart AS INTEGER, @valueStart AS INTEGER, @valueLength AS INTEGER&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#008000&gt;-- Only handle string type fields (:S:)&lt;br&gt;
SET @fieldNameStart = CHARINDEX(@fieldName + ':S',@Fields,0)&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#008000&gt;-- If field is not found, return null&lt;br&gt;
IF @fieldNameStart = 0 RETURN NULL&lt;br&gt;
SET @fieldNameStart = @fieldNameStart + LEN(@fieldName) + 3&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#008000&gt;-- Get the field token which I've defined as the start of the
field offset to the end of the length&lt;br&gt;
SET @fieldNameToken = SUBSTRING(@Fields,@fieldNameStart,LEN(@Fields)-@fieldNameStart)&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#008000&gt;-- Get the values for the offset and length&lt;br&gt;
SET @valueStart = dbo.fn_getelement(1,@fieldNameToken,':')&lt;br&gt;
SET @valueLength = dbo.fn_getelement(2,@fieldNameToken,':')&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#008000&gt;-- Check for sane values, 0 length means the profile item was
stored, just no data&lt;br&gt;
IF @valueLength = 0 RETURN ''&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#008000&gt;-- Return the string&lt;br&gt;
RETURN SUBSTRING(@values, @valueStart+1, @valueLength)&lt;br&gt;
END&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;--!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
&lt;/p&gt;
&lt;p&gt;
Then a stored procedure was created to retrieve the users PostalCode by passing in
the UserName.
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#008000&gt;SET ANSI_NULLS ON&lt;br&gt;
GO&lt;br&gt;
SET QUOTED_IDENTIFIER ON&lt;br&gt;
GO&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#008000&gt;CREATE PROCEDURE GetPostalCodeFromUserName&lt;br&gt;
&amp;nbsp;@UserName nvarchar(50)&lt;br&gt;
AS&lt;br&gt;
BEGIN&lt;br&gt;
&amp;nbsp;SET NOCOUNT ON;&lt;/font&gt;&lt;font color=#008000&gt;
&lt;br&gt;
&amp;nbsp;SELECT dbo.fn_GetProfileElement(N'PostalCode', dbo.aspnet_Profile.PropertyNames,
dbo.aspnet_Profile.PropertyValuesString) AS PostalCode FROM dbo.aspnet_Profile INNER
JOIN dbo.aspnet_Users ON dbo.aspnet_Profile.UserId = dbo.aspnet_Users.UserId where
dbo.aspnet_Users.UserName = @UserName&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#008000&gt;END&lt;br&gt;
GO&lt;/font&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://dnnblog.venexus.com/aggbug.ashx?id=693f071c-99b6-4aa0-9a90-10844a83ae1c" /&gt;</description>
      <category>MS SQL Server</category>
    </item>
    <item>
      <trackback:ping>http://dnnblog.venexus.com/Trackback.aspx?guid=9565cb49-a707-43a2-ba20-ae99bac71516</trackback:ping>
      <pingback:server>http://dnnblog.venexus.com/pingback.aspx</pingback:server>
      <pingback:target>http://dnnblog.venexus.com/PermaLink,guid,9565cb49-a707-43a2-ba20-ae99bac71516.aspx</pingback:target>
      <dc:creator>Jeff Smith</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
The GetSchedule() timeout error:
</p>
        <p align="left">
          <span class="Normal">
            <font size="1">
              <font color="#ff0000">
                <span class="NormalRed" id="dnn_ctr332__ctl0_lblHeading">Error:
Schedule is currently unavailable.<br /></span>
                <span class="Normal" id="dnn_ctr332__ctl0_lblMessage">DotNetNuke.Services.Exceptions.ModuleLoadException:
Timeout expired. The timeout period elapsed prior to completion of the operation or
the server is not responding. ---&gt; System.Data.SqlClient.SqlException: Timeout
expired. The timeout period elapsed prior to completion of the operation or the server
is not responding. at System.Data.SqlClient.SqlConnection.OnError(SqlException exception,
Boolean breakConnection) at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException
exception, Boolean breakConnection) at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject
stateObj) at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand
cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject
stateObj) at System.Data.SqlClient.SqlDataReader.ConsumeMetaData() at System.Data.SqlClient.SqlDataReader.get_MetaData()
at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior
runBehavior, String resetOptionsString) at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior
cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async) at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior
cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult
result) at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior,
RunBehavior runBehavior, Boolean returnStream, String method) at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior
behavior, String method) at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior
behavior) at Microsoft.ApplicationBlocks.Data.SqlHelper.ExecuteReader(SqlConnection
connection, SqlTransaction transaction, CommandType commandType, String commandText,
SqlParameter[] commandParameters, SqlConnectionOwnership connectionOwnership) at Microsoft.ApplicationBlocks.Data.SqlHelper.ExecuteReader(String
connectionString, CommandType commandType, String commandText, SqlParameter[] commandParameters)
at Microsoft.ApplicationBlocks.Data.SqlHelper.ExecuteReader(String connectionString,
String spName, Object[] parameterValues) at DotNetNuke.Services.Scheduling.DNNScheduling.SqlDataProvider.GetSchedule()
at DotNetNuke.Services.Scheduling.DNNScheduling.SchedulingController.GetSchedule()
at DotNetNuke.Services.Scheduling.DNNScheduling.DNNScheduler.GetSchedule() at DotNetNuke.Modules.Admin.Scheduling.ViewSchedule.Page_Load(Object
sender, EventArgs e) --- End of inner exception stack trace ---</span>
              </font>
            </font>
          </span>
        </p>
        <p>
          <span class="Normal">
            <span class="Normal">The temporary fix: </span>
          </span>
        </p>
        <p>
          <span class="Normal">
            <span class="Normal">Cleaning out the ScheduleHistory table fixes
the problem until it gets too full again...</span>
          </span>
        </p>
        <p>
          <span class="Normal">
            <span class="Normal">
              <font color="#ff0000">Delete From ScheduleHistory
where ScheduleHistoryID &gt; 1</font>
            </span>
          </span>
        </p>
        <p>
          <span class="Normal">
            <span class="Normal">Make sure you backup your database before
executing this SQL statement.</span>
          </span>
        </p>
        <p>
          <span class="Normal">
            <span class="Normal">I need to investigate more on how the code
for GetSchedule() works and how to cleanup the ScheduleHistory more often. Also, we
are w</span>
          </span>
          <span class="Normal">
            <span class="Normal">orking with Microsoft
on a different issue, they have voiced concern on the performance of the stored proc
GetSchedule. I will post any suggestion here when they surface.</span>
          </span>
        </p>
        <p>
          <span class="Normal">
            <span class="Normal">
            </span>
          </span> 
</p>
        <img width="0" height="0" src="http://dnnblog.venexus.com/aggbug.ashx?id=9565cb49-a707-43a2-ba20-ae99bac71516" />
      </body>
      <title>DotNetNuke GetSchedule Timeout</title>
      <guid isPermaLink="false">http://dnnblog.venexus.com/PermaLink,guid,9565cb49-a707-43a2-ba20-ae99bac71516.aspx</guid>
      <link>http://dnnblog.venexus.com/DotNetNuke+GetSchedule+Timeout.aspx</link>
      <pubDate>Mon, 23 Jan 2006 18:02:55 GMT</pubDate>
      <description>&lt;p&gt;
The GetSchedule() timeout error:
&lt;/p&gt;
&lt;p align=left&gt;
&lt;span class=Normal&gt;&lt;font size=1&gt;&lt;font color=#ff0000&gt;&lt;span class=NormalRed id=dnn_ctr332__ctl0_lblHeading&gt;Error:
Schedule is currently unavailable.&lt;br&gt;
&lt;/span&gt;&lt;span class=Normal id=dnn_ctr332__ctl0_lblMessage&gt;DotNetNuke.Services.Exceptions.ModuleLoadException:
Timeout expired. The timeout period elapsed prior to completion of the operation or
the server is not responding. ---&amp;gt; System.Data.SqlClient.SqlException: Timeout
expired. The timeout period elapsed prior to completion of the operation or the server
is not responding. at System.Data.SqlClient.SqlConnection.OnError(SqlException exception,
Boolean breakConnection) at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException
exception, Boolean breakConnection) at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject
stateObj) at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand
cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject
stateObj) at System.Data.SqlClient.SqlDataReader.ConsumeMetaData() at System.Data.SqlClient.SqlDataReader.get_MetaData()
at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior
runBehavior, String resetOptionsString) at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior
cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async) at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior
cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult
result) at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior,
RunBehavior runBehavior, Boolean returnStream, String method) at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior
behavior, String method) at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior
behavior) at Microsoft.ApplicationBlocks.Data.SqlHelper.ExecuteReader(SqlConnection
connection, SqlTransaction transaction, CommandType commandType, String commandText,
SqlParameter[] commandParameters, SqlConnectionOwnership connectionOwnership) at Microsoft.ApplicationBlocks.Data.SqlHelper.ExecuteReader(String
connectionString, CommandType commandType, String commandText, SqlParameter[] commandParameters)
at Microsoft.ApplicationBlocks.Data.SqlHelper.ExecuteReader(String connectionString,
String spName, Object[] parameterValues) at DotNetNuke.Services.Scheduling.DNNScheduling.SqlDataProvider.GetSchedule()
at DotNetNuke.Services.Scheduling.DNNScheduling.SchedulingController.GetSchedule()
at DotNetNuke.Services.Scheduling.DNNScheduling.DNNScheduler.GetSchedule() at DotNetNuke.Modules.Admin.Scheduling.ViewSchedule.Page_Load(Object
sender, EventArgs e) --- End of inner exception stack trace ---&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span class=Normal&gt;&lt;span class=Normal&gt;The temporary fix: &lt;/span&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span class=Normal&gt;&lt;span class=Normal&gt;Cleaning out the ScheduleHistory table&amp;nbsp;fixes
the problem until it gets too full again...&lt;/span&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span class=Normal&gt;&lt;span class=Normal&gt;&lt;font color=#ff0000&gt;Delete From ScheduleHistory
where ScheduleHistoryID &amp;gt; 1&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span class=Normal&gt;&lt;span class=Normal&gt;Make sure you backup your database before executing
this SQL statement.&lt;/span&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span class=Normal&gt;&lt;span class=Normal&gt;I need to investigate more on how the code for
GetSchedule() works and how to cleanup the ScheduleHistory more often. Also, we are
w&lt;/span&gt;&lt;/span&gt;&lt;span class=Normal&gt;&lt;span class=Normal&gt;orking with Microsoft on a different
issue, they have voiced concern on the performance of the stored proc GetSchedule.
I will post any suggestion here when they surface.&lt;/span&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span class=Normal&gt;&lt;span class=Normal&gt;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://dnnblog.venexus.com/aggbug.ashx?id=9565cb49-a707-43a2-ba20-ae99bac71516" /&gt;</description>
      <category>DotNetNuke Errors;MS SQL Server</category>
    </item>
    <item>
      <trackback:ping>http://dnnblog.venexus.com/Trackback.aspx?guid=3e257cf3-5de5-4655-842d-eee6495c4c70</trackback:ping>
      <pingback:server>http://dnnblog.venexus.com/pingback.aspx</pingback:server>
      <pingback:target>http://dnnblog.venexus.com/PermaLink,guid,3e257cf3-5de5-4655-842d-eee6495c4c70.aspx</pingback:target>
      <dc:creator>Jeff Smith</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
While working with Microsoft concerning the <a class="TitleLinkStyle" href="http://dnnblog.venexus.com/DNN+SQLDataProvider+And+64Bit+SQL+Server+2005+Issue.aspx"><font color="#005bba">DNN
SQLDataProvider and 64-Bit SQL Server 2005 Issue</font></a>, it was suggested that
there was a performance issue with <strong>GetTab</strong>. While this does not help
the issue we are having, it did help with performance...
</p>
        <p>
"There are some implicit converts happening even though you have explicit converts
in the statements"
</p>
        <p>
          <strong>Current GetTab SQL:</strong>
        </p>
        <p>
select TabID, 
<br />
TabOrder, 
<br />
Tabs.PortalID, 
<br />
TabName, 
<br />
IsVisible, 
<br />
ParentId, 
<br />
[Level], 
<br />
DisableLink, 
<br />
Title, 
<br />
Description, 
<br />
KeyWords, 
<br />
IsDeleted, 
<br /><font color="#ff0000"><strong>'Url'= case when F2.FileName is null then Tabs.Url else
F2.Folder + F2.FileName end,</strong></font><br />
SkinSrc, 
<br />
ContainerSrc, 
<br />
TabPath, 
<br />
StartDate, 
<br />
EndDate,<br />
'IconFile' = case when Files.FileName is null then Tabs.IconFile else Files.Folder
+ Files.FileName end,<br />
'HasChildren' = case when exists (select 1 from Tabs T2 where T2.ParentId = Tabs.TabId)
then 'true' else 'false' end,<br />
RefreshInterval,<br />
PageHeadText<br />
from   Tabs<br />
left outer join Files on Tabs.IconFile = 'fileid=' + convert(varchar,Files.FileID)<br /><font color="#ff0000"><strong>left outer join Files F2 on Tabs.Url = 'fileid=' + convert(varchar,F2.FileID)</strong></font><br />
where  TabId = @TabId
</p>
        <p>
 
</p>
        <p>
          <strong>The FIX:</strong>
        </p>
        <p>
select TabID, 
<br />
TabOrder, 
<br />
Tabs.PortalID, 
<br />
TabName, 
<br />
IsVisible, 
<br />
ParentId, 
<br />
[Level], 
<br />
DisableLink, 
<br />
Title, 
<br />
Description, 
<br />
KeyWords, 
<br />
IsDeleted, 
<br /><font color="#ff0000"><strong>'Url'= case when Files.FileName is null then Tabs.Url
else files.Folder + Files.FileName end,</strong></font><br />
SkinSrc, 
<br />
ContainerSrc, 
<br />
TabPath, 
<br />
StartDate, 
<br />
EndDate,<br />
'IconFile' = case when Files.FileName is null then Tabs.IconFile else Files.Folder
+ Files.FileName end,<br />
'HasChildren' = case when exists (select 1 from Tabs T2 where T2.ParentId = Tabs.TabId)
then 'true' else 'false' end,<br />
RefreshInterval,<br />
PageHeadText<br />
from   Tabs<br />
left outer join Files on Tabs.IconFile = 'fileid=' + convert(nvarchar,Files.FileID)<br /><font color="#ff0000"><strong>and Tabs.Url = 'fileid=' + convert(nvarchar,Files.FileID)</strong></font><br />
where  TabId = @TabId
</p>
        <p>
Running SQLDiag.exe confirmed the modification helped improve performance. More details
later...
</p>
        <p>
I'll post this to the DNN Bug Tracker shortly...
</p>
        <p>
          <strong>Update 1/25/2006:</strong>
        </p>
        <p>
Now in Bug Tracker: <a href="http://support.dotnetnuke.com/Default.aspx?p=23&amp;i=2404">2404</a><br /></p>
        <img width="0" height="0" src="http://dnnblog.venexus.com/aggbug.ashx?id=3e257cf3-5de5-4655-842d-eee6495c4c70" />
      </body>
      <title>Performance Issue with DotNetNuke Stored Procedure GetTab</title>
      <guid isPermaLink="false">http://dnnblog.venexus.com/PermaLink,guid,3e257cf3-5de5-4655-842d-eee6495c4c70.aspx</guid>
      <link>http://dnnblog.venexus.com/Performance+Issue+With+DotNetNuke+Stored+Procedure+GetTab.aspx</link>
      <pubDate>Fri, 13 Jan 2006 19:35:44 GMT</pubDate>
      <description>&lt;p&gt;
While working with Microsoft concerning the &lt;a class=TitleLinkStyle href="http://dnnblog.venexus.com/DNN+SQLDataProvider+And+64Bit+SQL+Server+2005+Issue.aspx"&gt;&lt;font color=#005bba&gt;DNN
SQLDataProvider and 64-Bit SQL Server 2005 Issue&lt;/font&gt;&lt;/a&gt;, it was suggested that
there was a performance issue with &lt;strong&gt;GetTab&lt;/strong&gt;. While this does not help
the issue we are having, it did help with performance...
&lt;/p&gt;
&lt;p&gt;
"There are some implicit converts happening even though you have explicit converts
in the statements"
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Current GetTab SQL:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
select TabID, 
&lt;br&gt;
TabOrder, 
&lt;br&gt;
Tabs.PortalID, 
&lt;br&gt;
TabName, 
&lt;br&gt;
IsVisible, 
&lt;br&gt;
ParentId, 
&lt;br&gt;
[Level], 
&lt;br&gt;
DisableLink, 
&lt;br&gt;
Title, 
&lt;br&gt;
Description, 
&lt;br&gt;
KeyWords, 
&lt;br&gt;
IsDeleted, 
&lt;br&gt;
&lt;font color=#ff0000&gt;&lt;strong&gt;'Url'= case when F2.FileName is null then Tabs.Url else
F2.Folder + F2.FileName end,&lt;/strong&gt;&lt;/font&gt; 
&lt;br&gt;
SkinSrc, 
&lt;br&gt;
ContainerSrc, 
&lt;br&gt;
TabPath, 
&lt;br&gt;
StartDate, 
&lt;br&gt;
EndDate,&lt;br&gt;
'IconFile' = case when Files.FileName is null then Tabs.IconFile else Files.Folder
+ Files.FileName end,&lt;br&gt;
'HasChildren' = case when exists (select 1 from Tabs T2 where T2.ParentId = Tabs.TabId)
then 'true' else 'false' end,&lt;br&gt;
RefreshInterval,&lt;br&gt;
PageHeadText&lt;br&gt;
from&amp;nbsp;&amp;nbsp; Tabs&lt;br&gt;
left outer join Files on Tabs.IconFile = 'fileid=' + convert(varchar,Files.FileID)&lt;br&gt;
&lt;font color=#ff0000&gt;&lt;strong&gt;left outer join Files F2 on Tabs.Url = 'fileid=' + convert(varchar,F2.FileID)&lt;/strong&gt;&lt;/font&gt;
&lt;br&gt;
where&amp;nbsp; TabId = @TabId
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;The FIX:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
select TabID, 
&lt;br&gt;
TabOrder, 
&lt;br&gt;
Tabs.PortalID, 
&lt;br&gt;
TabName, 
&lt;br&gt;
IsVisible, 
&lt;br&gt;
ParentId, 
&lt;br&gt;
[Level], 
&lt;br&gt;
DisableLink, 
&lt;br&gt;
Title, 
&lt;br&gt;
Description, 
&lt;br&gt;
KeyWords, 
&lt;br&gt;
IsDeleted, 
&lt;br&gt;
&lt;font color=#ff0000&gt;&lt;strong&gt;'Url'= case when Files.FileName is null then Tabs.Url
else files.Folder + Files.FileName end,&lt;/strong&gt;&lt;/font&gt; 
&lt;br&gt;
SkinSrc, 
&lt;br&gt;
ContainerSrc, 
&lt;br&gt;
TabPath, 
&lt;br&gt;
StartDate, 
&lt;br&gt;
EndDate,&lt;br&gt;
'IconFile' = case when Files.FileName is null then Tabs.IconFile else Files.Folder
+ Files.FileName end,&lt;br&gt;
'HasChildren' = case when exists (select 1 from Tabs T2 where T2.ParentId = Tabs.TabId)
then 'true' else 'false' end,&lt;br&gt;
RefreshInterval,&lt;br&gt;
PageHeadText&lt;br&gt;
from&amp;nbsp;&amp;nbsp; Tabs&lt;br&gt;
left outer join Files on Tabs.IconFile = 'fileid=' + convert(nvarchar,Files.FileID)&lt;br&gt;
&lt;font color=#ff0000&gt;&lt;strong&gt;and Tabs.Url = 'fileid=' + convert(nvarchar,Files.FileID)&lt;/strong&gt;&lt;/font&gt;
&lt;br&gt;
where&amp;nbsp; TabId = @TabId
&lt;/p&gt;
&lt;p&gt;
Running SQLDiag.exe confirmed the modification helped improve performance. More details
later...
&lt;/p&gt;
&lt;p&gt;
I'll post this to the DNN Bug Tracker shortly...
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Update 1/25/2006:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Now in Bug Tracker: &lt;a href="http://support.dotnetnuke.com/Default.aspx?p=23&amp;amp;i=2404"&gt;2404&lt;/a&gt;
&lt;br&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://dnnblog.venexus.com/aggbug.ashx?id=3e257cf3-5de5-4655-842d-eee6495c4c70" /&gt;</description>
      <category>DotNetNuke Errors;MS SQL Server</category>
    </item>
    <item>
      <trackback:ping>http://dnnblog.venexus.com/Trackback.aspx?guid=5ae12687-1b47-497a-8e91-701d3eed4379</trackback:ping>
      <pingback:server>http://dnnblog.venexus.com/pingback.aspx</pingback:server>
      <pingback:target>http://dnnblog.venexus.com/PermaLink,guid,5ae12687-1b47-497a-8e91-701d3eed4379.aspx</pingback:target>
      <dc:creator>Jeff Smith</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I made the following post on the <a href="http://forums.asp.net/1160658/ShowPost.aspx">DNN
Forums</a>, and decided to post it here in case someone reads it here first...
</p>
        <p>
This is all related to: <a class="TitleLinkStyle" href="http://dnnblog.venexus.com/Upgrading+DNN+From+Local+SQL+Server+2000+To+Remote+SQL+Server+2005.aspx"><font color="#005bba">Upgrading
DNN from local SQL Server 2000 to Remote SQL Server 2005</font></a></p>
        <p>
We are experiencing an issue with DNN and a <strong>64-Bit SQL Server 2005</strong> database
server that seems to be related to the <strong>SQLDataProvider</strong>. We are currently
running a production web server (<strong>Server A</strong>) that has an instance of
SQL Server 2000 running locally. We have a mixture of DNN3 and NON-DNN sites running
on Server A. All DNN sites are fast and run smoothly, only experiencing a few issues
during peak traffic times regarding the local SQL Server 2000. Previously we had a
separate server for our production SQL Server 2000 databases. However, we recently
acquired a very fast 64-Bit server that came from Overture.com (<strong>Server C)</strong> and
had to make room in our rack by decommissioning the old database server after moving
all databases to Server A. Now, we are in the process of moving all Server A databases
to Server C , so we can go back to using Server A as web server only. We have been
testing and planning our database move utilizing our development server (<strong>Server
B</strong>).  Our goal is to move ALL Server A databases to Server C. 
</p>
        <p>
          <strong>Server A:<br /></strong>Dell 2850<br />
Dual 3 Ghz Xeons<br />
2 Gb RAM<br /><strong>32-Bit</strong><br />
Windows 2003 Standard Edition<br />
SQL Server 2000
</p>
        <p>
          <strong>Server B:</strong>
          <br />
Dell 1550<br />
Dual 1 Ghz Pentiums<br />
2 Gb RAM<br /><strong>32-Bit</strong><br />
Windows 2003 Enterprise Edition<br />
SQL Server 2000 Standard Instance<br />
SQL Server 2005 Enterprise Instance
</p>
        <p>
          <strong>Server C:</strong>
          <br />
Dell 7150 
<br />
Quad Itanium Processors<br />
12 Gb RAM<br /><strong>64-Bit</strong> Windows 2003 Enterprise Edition<br /><strong>64-Bit</strong> SQL Server 2005 Enterprise Edition
</p>
        <p>
          <br />
We began testing the NON-DNN site and DNN site databases against Server B, all with
success. We also setup DNN instances on Server B that used Server C as database server.
Testing was successful, but all DNN databases tested were less than 100 Mb. We noticed
that the DNN sites on Server B that talked to Server C DNN databases were slower,
but dismissed it as being on the slower Server B when compared to Server A. 
</p>
        <p>
So, after much testing for NON-DNN sites, we moved all NON-DNN databases to Server
C. All NON-DNN sites use the <strong>SQLOLEDB Provider</strong>. Our largest NON-DNN
database is over 3.5 Gb. After the move, the site with the largest database experienced
great performance/speed improvements. Some larger data transactions were executed
in almost half of the time. We were very pleased with the results. 
</p>
        <p>
          <img src="http://www.venexus.com/64bit-A.gif" />
        </p>
        <p>
After successful NON-DNN databases move from Server A to Server C, we began moving
the DNN databases to Server C.  The first 3 were very small databases. However,
the largest of the 3, we noticed a difference in speed. Concerned, but determined
to move on, we moved a 2.5 Gb DNN database to Server C and gave it a try... The speed
was horrible taking as much as 15-45 seconds to deliver a page. We quickly backed
out of the upgrade and began our investigation…
</p>
        <p>
          <img src="http://www.venexus.com/64bit-B.gif" />
        </p>
        <p>
Doing a little research, I dug into the DNN documentation for Data Access and looked
at the code to see DNN uses <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemdatasqlclientsqlconnectionclasstopic.asp">System.Data.SQLClient</a> as
the provider. <strong>Why would SQLOLEDB be fast and the DNN SQLDataProvider be so
dreadfully slow and only when on a 64-Bit server?</strong> I really have no desire
to change any of the core DNN code to use the System.Data.OleDb as the provider to
test and see if there is a difference, so any recommedations and/or suggestions are
appreciated. 
</p>
        <p>
I know there are a few issues with 64-Bit SQL Server 2005 tools running slow: <a href="http://support.microsoft.com/default.aspx?scid=kb;en-us;906892">You
may experience slow performance when you run 32-bit SQL Server tools on 64-bit operating
systems</a>. But, this should not be related to the issue since this concerns just
the tools, or does it? 
</p>
        <p>
I plan on burning a support call to Microsoft, but would like to gain any insight
others might have before I make the call.
</p>
        <img width="0" height="0" src="http://dnnblog.venexus.com/aggbug.ashx?id=5ae12687-1b47-497a-8e91-701d3eed4379" />
      </body>
      <title>DNN SQLDataProvider and 64-Bit SQL Server 2005 Issue</title>
      <guid isPermaLink="false">http://dnnblog.venexus.com/PermaLink,guid,5ae12687-1b47-497a-8e91-701d3eed4379.aspx</guid>
      <link>http://dnnblog.venexus.com/DNN+SQLDataProvider+And+64Bit+SQL+Server+2005+Issue.aspx</link>
      <pubDate>Fri, 06 Jan 2006 05:04:29 GMT</pubDate>
      <description>&lt;p&gt;
I made the following post on the &lt;a href="http://forums.asp.net/1160658/ShowPost.aspx"&gt;DNN
Forums&lt;/a&gt;, and decided to post it here in case someone reads it here first...
&lt;/p&gt;
&lt;p&gt;
This is all related to: &lt;a class=TitleLinkStyle href="http://dnnblog.venexus.com/Upgrading+DNN+From+Local+SQL+Server+2000+To+Remote+SQL+Server+2005.aspx"&gt;&lt;font color=#005bba&gt;Upgrading
DNN from local SQL Server 2000 to Remote SQL Server 2005&lt;/font&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
We are experiencing an issue with DNN and a &lt;strong&gt;64-Bit SQL Server 2005&lt;/strong&gt; database
server that seems to be related to the &lt;strong&gt;SQLDataProvider&lt;/strong&gt;. We are currently
running a production web server (&lt;strong&gt;Server A&lt;/strong&gt;) that has an instance of
SQL Server 2000 running locally. We have a mixture of DNN3 and NON-DNN sites running
on Server A. All DNN sites are fast and run smoothly, only experiencing a few issues
during peak traffic times regarding the local SQL Server 2000. Previously we had a
separate server for our production SQL Server 2000 databases. However, we recently
acquired a very fast 64-Bit server that came from Overture.com (&lt;strong&gt;Server C)&lt;/strong&gt; and
had to make room in our rack by decommissioning the old database server after moving
all databases to Server A. Now, we are in the process of moving all Server A databases
to Server C , so we can go back to using Server A as web server only. We have been
testing and planning our database move utilizing our development server (&lt;strong&gt;Server
B&lt;/strong&gt;).&amp;nbsp; Our goal is to move ALL Server A databases to Server C. 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Server A:&lt;br&gt;
&lt;/strong&gt;Dell 2850&lt;br&gt;
Dual 3 Ghz Xeons&lt;br&gt;
2 Gb RAM&lt;br&gt;
&lt;strong&gt;32-Bit&lt;/strong&gt;
&lt;br&gt;
Windows 2003 Standard Edition&lt;br&gt;
SQL Server 2000
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Server B:&lt;/strong&gt;
&lt;br&gt;
Dell 1550&lt;br&gt;
Dual 1 Ghz Pentiums&lt;br&gt;
2 Gb RAM&lt;br&gt;
&lt;strong&gt;32-Bit&lt;/strong&gt;
&lt;br&gt;
Windows 2003 Enterprise Edition&lt;br&gt;
SQL Server 2000 Standard Instance&lt;br&gt;
SQL Server 2005 Enterprise Instance
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Server C:&lt;/strong&gt;
&lt;br&gt;
Dell 7150 
&lt;br&gt;
Quad Itanium Processors&lt;br&gt;
12 Gb RAM&lt;br&gt;
&lt;strong&gt;64-Bit&lt;/strong&gt; Windows 2003 Enterprise Edition&lt;br&gt;
&lt;strong&gt;64-Bit&lt;/strong&gt; SQL Server 2005 Enterprise Edition
&lt;/p&gt;
&lt;p&gt;
&lt;br&gt;
We began testing the NON-DNN site and DNN site databases against Server B, all with
success. We also setup DNN instances on Server B that used Server C as database server.
Testing was successful, but all DNN databases tested were less than 100 Mb. We noticed
that the DNN sites on Server B that talked to Server C DNN databases were slower,
but dismissed it as being on the slower Server B when compared to Server A. 
&lt;/p&gt;
&lt;p&gt;
So, after much testing for NON-DNN sites, we moved all NON-DNN databases to Server
C. All NON-DNN sites use the &lt;strong&gt;SQLOLEDB Provider&lt;/strong&gt;. Our largest NON-DNN
database is over 3.5 Gb. After the move, the site with the largest database experienced
great performance/speed improvements. Some larger data transactions were executed
in almost half of the time. We were very pleased with the results. 
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.venexus.com/64bit-A.gif"&gt;
&lt;/p&gt;
&lt;p&gt;
After successful NON-DNN databases move from Server A to Server C, we began moving
the DNN databases to Server C.&amp;nbsp; The first 3 were very small databases. However,
the largest of the 3, we noticed a difference in speed. Concerned, but determined
to move on, we moved a 2.5 Gb DNN database to Server C and gave it a try... The speed
was horrible taking as much as 15-45 seconds to deliver a page. We quickly backed
out of the upgrade and began our investigation…
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.venexus.com/64bit-B.gif"&gt;
&lt;/p&gt;
&lt;p&gt;
Doing a little research, I dug into the DNN documentation for Data Access and looked
at the code to see DNN uses &lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemdatasqlclientsqlconnectionclasstopic.asp"&gt;System.Data.SQLClient&lt;/a&gt; as
the provider. &lt;strong&gt;Why would SQLOLEDB be fast and the DNN SQLDataProvider be so
dreadfully slow and only when on a 64-Bit server?&lt;/strong&gt; I really have no desire
to change any of the core DNN code to use the System.Data.OleDb as the provider to
test and see if there is a difference, so any recommedations and/or suggestions are
appreciated.&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
I know there are a few issues with 64-Bit SQL Server 2005 tools running slow: &lt;a href="http://support.microsoft.com/default.aspx?scid=kb;en-us;906892"&gt;You
may experience slow performance when you run 32-bit SQL Server tools on 64-bit operating
systems&lt;/a&gt;. But, this should not be related to the issue since this concerns just
the tools, or does it? 
&lt;/p&gt;
&lt;p&gt;
I plan on burning a support call to Microsoft, but would like to gain any insight
others might have before I make the call.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://dnnblog.venexus.com/aggbug.ashx?id=5ae12687-1b47-497a-8e91-701d3eed4379" /&gt;</description>
      <category>DotNetNuke Errors;MS SQL Server</category>
    </item>
    <item>
      <trackback:ping>http://dnnblog.venexus.com/Trackback.aspx?guid=499095f9-b8c7-4a3f-8635-040175556dd6</trackback:ping>
      <pingback:server>http://dnnblog.venexus.com/pingback.aspx</pingback:server>
      <pingback:target>http://dnnblog.venexus.com/PermaLink,guid,499095f9-b8c7-4a3f-8635-040175556dd6.aspx</pingback:target>
      <dc:creator>Jeff Smith</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Yesterday, we attempted to move a few DNN installations from using a <strong>local </strong>SQL
Server 2000 database to our new SQL Server 2005 server. First, we have a few non-DNN
sites that are from pre-DNN days and are using the <strong>SQLOLEDB</strong> provider.
After moving the largest database of 3.5 Gb, testing the site showed remarkable improvements
of speed and performance. On pages with heavy data interaction, some loaded almost
twice as fast. We then moved a few of the databases for smaller DNN sites to the new
server. These sites were really small and a huge difference in speed could not really
be determined without some page execution code being added. Then we tried moving a
2.5 Gb DNN database. The move went smooth, but the speed was <strong>horrible</strong>! 
</p>
        <p>
So, this had me thinking about <a href="http://dnnblog.venexus.com/DotNetNuke++Incoming+TDS+RPC+Protocol+Stream+Incorrect+Error+For+SQL+Server+2005.aspx">incoming
tabular data stream (TDS) remote procedure call (RPC) protocol stream is incorrect
error</a> again. Could an issue with the default provider for DNN and SQL Server
2005 be causing trouble? Oddly enough, when monitoring the remote SQL server, there
was a huge spike on all 4 processors while processing the page. Well, I am going to
find out tonight. I am going to test speed from a remote SQL Server 2000 server and
see if there is any difference in speed. I'll post my results here...
</p>
        <p>
          <strong>UPDATE:</strong>
        </p>
        <p>
What a surprise. Checkout the results...
</p>
        <p>
 
</p>
        <p>
          <img src="http://dnnblog.venexus.com/content/binary/64bit.jpg" border="0" />
        </p>
        <p>
 
</p>
        <p>
So, it looks like this is a 64 Bit and default DNN data provider issue. As I mentioned
above, the old non-DNN sites using SQLOLEDB for the provider were super fast. 
</p>
        <p>
Could this be related: <a href="http://support.microsoft.com/default.aspx?scid=kb;en-us;906892">You
may experience slow performance when you run 32-bit SQL Server tools on 64-bit operating
systems</a></p>
        <p>
Look like a call to MS Support is in order. I just need to do a little more reseach
on the DNN data provider. More details coming soon....
</p>
        <p>
          <strong>Update 1/4/2005:</strong>
        </p>
        <p>
After looking through the DNN documentation, I found the following: <a href="http://dnnblog.venexus.com/content/binary/DotNetNuke Data Access.pdf">DotNetNuke
Data Access.pdf (428.91 KB)</a></p>
        <img width="0" height="0" src="http://dnnblog.venexus.com/aggbug.ashx?id=499095f9-b8c7-4a3f-8635-040175556dd6" />
      </body>
      <title>Upgrading DNN from local SQL Server 2000 to Remote SQL Server 2005</title>
      <guid isPermaLink="false">http://dnnblog.venexus.com/PermaLink,guid,499095f9-b8c7-4a3f-8635-040175556dd6.aspx</guid>
      <link>http://dnnblog.venexus.com/Upgrading+DNN+From+Local+SQL+Server+2000+To+Remote+SQL+Server+2005.aspx</link>
      <pubDate>Wed, 04 Jan 2006 04:50:26 GMT</pubDate>
      <description>&lt;p&gt;
Yesterday, we attempted to move a few DNN installations from using a &lt;strong&gt;local &lt;/strong&gt;SQL
Server 2000 database to our new SQL Server 2005 server. First, we have a few non-DNN
sites that are from pre-DNN days and are using the &lt;strong&gt;SQLOLEDB&lt;/strong&gt; provider.
After moving the largest database of 3.5 Gb, testing the site showed remarkable improvements
of speed and performance. On pages with heavy data interaction, some loaded almost
twice as fast. We then moved a few of the databases for smaller DNN sites to the new
server. These sites were really small and a huge difference in speed could not really
be determined without some page execution code being added. Then we tried moving a
2.5 Gb DNN database. The move went smooth, but the speed was &lt;strong&gt;horrible&lt;/strong&gt;! 
&lt;/p&gt;
&lt;p&gt;
So, this had me thinking about &lt;a href="http://dnnblog.venexus.com/DotNetNuke++Incoming+TDS+RPC+Protocol+Stream+Incorrect+Error+For+SQL+Server+2005.aspx"&gt;incoming
tabular data stream (TDS) remote procedure call (RPC) protocol stream is incorrect
error&lt;/a&gt;&amp;nbsp;again. Could an issue with the default provider for DNN and SQL Server
2005 be causing trouble? Oddly enough, when monitoring the remote SQL server, there
was a huge spike on all 4 processors while processing the page. Well, I am going to
find out tonight. I am going to test speed from a remote SQL Server 2000 server and
see if there is any difference in speed. I'll post my results here...
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;UPDATE:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
What a surprise. Checkout the results...
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://dnnblog.venexus.com/content/binary/64bit.jpg" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
So, it looks like this is a 64 Bit and default DNN data provider issue. As I mentioned
above, the old non-DNN sites using SQLOLEDB for the provider were super fast. 
&lt;/p&gt;
&lt;p&gt;
Could this be related: &lt;a href="http://support.microsoft.com/default.aspx?scid=kb;en-us;906892"&gt;You
may experience slow performance when you run 32-bit SQL Server tools on 64-bit operating
systems&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Look like a call to MS Support is in order. I just need to do a little more reseach
on the DNN data provider. More details coming soon....
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Update 1/4/2005:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
After looking through the DNN documentation, I found the following: &lt;a href="http://dnnblog.venexus.com/content/binary/DotNetNuke Data Access.pdf"&gt;DotNetNuke
Data Access.pdf (428.91 KB)&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://dnnblog.venexus.com/aggbug.ashx?id=499095f9-b8c7-4a3f-8635-040175556dd6" /&gt;</description>
      <category>MS SQL Server</category>
    </item>
    <item>
      <trackback:ping>http://dnnblog.venexus.com/Trackback.aspx?guid=5f4c28f5-170b-4a4a-adfc-e6f90f00a78f</trackback:ping>
      <pingback:server>http://dnnblog.venexus.com/pingback.aspx</pingback:server>
      <pingback:target>http://dnnblog.venexus.com/PermaLink,guid,5f4c28f5-170b-4a4a-adfc-e6f90f00a78f.aspx</pingback:target>
      <dc:creator>Jeff Smith</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
InnerException: The<strong> incoming tabular data stream (TDS) remote procedure call
(RPC) protocol stream is incorrect</strong>. Parameter 1 ("@rawQuery"): Data type <strong>0xE7</strong> has
an <strong>invalid data length</strong> or <strong>metadata length</strong>.
</p>
        <p>
This is here as a placeholder because I have a feeling this is going to come up agaqin
soon...We experieced this issue with a DNN module that called a stored proc on a database
that was not located on the same server as where the DNN installation lived and a
different database than the DNN database. 
</p>
        <p>
          <strong>0xE7 = 231, which is correct for nvarchar</strong>. Running SQL Profiler,
no trace of the stored proc being run was found. 
</p>
        <p>
          <font color="#ff0000">**NOTE** The stored procedure that is being called is <strong>NOT</strong> in
the DotNetNuke database.</font>
        </p>
        <p>
We tried the following cases with interesting results:
</p>
        <p>
          <strong>Error Case:</strong>
        </p>
        <p>
Server A (Windows 2003 Standard running IIS), connecting to Server B (remote SQL Server
2005 database). <strong>ERROR = TRUE</strong></p>
        <p>
          <strong>Test Case 1:</strong>
        </p>
        <p>
Server A (Windows 2003 Enterprise running IIS), connecting to local SQL Server
2000  database. <strong>ERROR = FALSE</strong></p>
        <p>
          <strong>Test Case 2:</strong>
        </p>
        <p>
Server C (Windows 2003 Standard running IIS), connecting to local SQL Server
2000  database. <strong>ERROR = FALSE</strong></p>
        <p>
          <strong>Test Case 3:</strong>
        </p>
        <p>
Server A (Windows 2003 Enterprise running IIS), connecting to Server C (remote SQL
Server 2000  database). <strong>ERROR = FALSE</strong></p>
        <p>
          <strong>Test Case 4:</strong>
        </p>
        <p>
Server C (Windows 2003 Standard running IIS), connecting to Server B (remote
SQL Server 2005 database). <strong>ERROR = TRUE</strong></p>
        <p>
          <strong>Test Case 5:</strong>
        </p>
        <p>
Server D (Windows 2003 Standard running IIS), connecting to local SQL Server
2005  database. <strong>ERROR = TRUE</strong></p>
        <p>
See the pattern? So, this definitely points to an SQL Server 2005 issue. This lead
us down the route of changing the provider to see if the module would work. And guess
what? It did. The error goes away. WTF? No time to run a packet sniffer. I am logging
this here as a great mystery to solve some other time.
</p>
        <p>
          <br />
          <strong> Update 1/9/2005:</strong>
        </p>
        <p>
During validation of a byte-ordered user-defined type passed through RPC, user-defined
type validation performs de-serialization/re-serialization of the user-defined type
and requires that the resulting bytes be exactly the same as the original. If the
validation fails, you will see the error: 
</p>
        <div class="errormsg">
          <font color="#ff0000">"System.Data.SqlClient.SqlException, Incoming
TDS RPC protocol stream is incorrect. Parameter 1 ("<var>&lt;ParameterName&gt;</var>"):
The supplied value is not a valid instance of data type <var>&lt;TypeName&gt;</var>.
Check the source data for invalid values."</font>  - Reference: <a href="http://support.microsoft.com/default.aspx?scid=kb;en-us;910228">http://support.microsoft.com/default.aspx?scid=kb;en-us;910228</a> 
in section 4.1.4
</div>
        <img width="0" height="0" src="http://dnnblog.venexus.com/aggbug.ashx?id=5f4c28f5-170b-4a4a-adfc-e6f90f00a78f" />
      </body>
      <title>DotNetNuke - Incoming TDS RPC Protocol Stream Incorrect Error for SQL Server 2005</title>
      <guid isPermaLink="false">http://dnnblog.venexus.com/PermaLink,guid,5f4c28f5-170b-4a4a-adfc-e6f90f00a78f.aspx</guid>
      <link>http://dnnblog.venexus.com/DotNetNuke+Incoming+TDS+RPC+Protocol+Stream+Incorrect+Error+For+SQL+Server+2005.aspx</link>
      <pubDate>Tue, 13 Dec 2005 20:35:40 GMT</pubDate>
      <description>&lt;p&gt;
InnerException: The&lt;strong&gt; incoming tabular data stream (TDS) remote procedure call
(RPC) protocol stream is incorrect&lt;/strong&gt;. Parameter 1 ("@rawQuery"): Data type &lt;strong&gt;0xE7&lt;/strong&gt; has
an &lt;strong&gt;invalid data length&lt;/strong&gt; or &lt;strong&gt;metadata length&lt;/strong&gt;.
&lt;/p&gt;
&lt;p&gt;
This is here as a placeholder because I have a feeling this is going to come up agaqin
soon...We experieced this issue with a DNN module that called a stored proc on a database
that was not located on the same server as where the DNN installation lived and a
different database than the DNN database. 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;0xE7 = 231,&amp;nbsp;which is correct for nvarchar&lt;/strong&gt;. Running SQL Profiler,
no trace of the stored proc being run was found. 
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#ff0000&gt;**NOTE** The stored procedure that is being called is &lt;strong&gt;NOT&lt;/strong&gt; in
the DotNetNuke database.&lt;/font&gt; 
&lt;/p&gt;
&lt;p&gt;
We tried the following cases with interesting results:
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Error Case:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Server A (Windows 2003 Standard running IIS), connecting to Server B (remote SQL Server
2005 database).&amp;nbsp;&lt;strong&gt;ERROR = TRUE&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Test Case 1:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Server A (Windows 2003&amp;nbsp;Enterprise running IIS), connecting to local SQL Server
2000&amp;nbsp; database. &lt;strong&gt;ERROR = FALSE&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Test Case 2:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Server&amp;nbsp;C (Windows 2003 Standard running IIS), connecting to local SQL Server
2000&amp;nbsp; database. &lt;strong&gt;ERROR = FALSE&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Test Case 3:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Server A (Windows 2003 Enterprise running IIS), connecting to Server C (remote SQL
Server 2000&amp;nbsp; database). &lt;strong&gt;ERROR = FALSE&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Test Case 4:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Server&amp;nbsp;C (Windows 2003 Standard running IIS), connecting to Server B (remote
SQL Server 2005 database).&amp;nbsp;&lt;strong&gt;ERROR = TRUE&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Test Case 5:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Server&amp;nbsp;D (Windows 2003 Standard running IIS), connecting to local SQL Server
2005&amp;nbsp; database. &lt;strong&gt;ERROR = TRUE&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
See the pattern? So, this definitely points to an SQL Server 2005 issue. This lead
us down the route of changing the provider to see if the module would work. And guess
what? It did. The error goes away. WTF? No time to run a packet sniffer. I am logging
this here as a great mystery to solve some other time.
&lt;/p&gt;
&lt;p&gt;
&lt;br&gt;
&lt;strong&gt;&amp;nbsp;Update 1/9/2005:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
During validation of a byte-ordered user-defined type passed through RPC, user-defined
type validation performs de-serialization/re-serialization of the user-defined type
and requires that the resulting bytes be exactly the same as the original. If the
validation fails, you will see the error: 
&lt;/p&gt;
&lt;div class=errormsg&gt;&lt;font color=#ff0000&gt;"System.Data.SqlClient.SqlException, Incoming
TDS RPC protocol stream is incorrect. Parameter 1 ("&lt;var&gt;&amp;lt;ParameterName&amp;gt;&lt;/var&gt;"):
The supplied value is not a valid instance of data type &lt;var&gt;&amp;lt;TypeName&amp;gt;&lt;/var&gt;.
Check the source data for invalid values."&lt;/font&gt;&amp;nbsp; - Reference: &lt;a href="http://support.microsoft.com/default.aspx?scid=kb;en-us;910228"&gt;http://support.microsoft.com/default.aspx?scid=kb;en-us;910228&lt;/a&gt;&amp;nbsp;
in section 4.1.4
&lt;/div&gt;
&lt;img width="0" height="0" src="http://dnnblog.venexus.com/aggbug.ashx?id=5f4c28f5-170b-4a4a-adfc-e6f90f00a78f" /&gt;</description>
      <category>DotNetNuke Errors;MS SQL Server</category>
    </item>
    <item>
      <trackback:ping>http://dnnblog.venexus.com/Trackback.aspx?guid=36adc822-737e-4044-b4fc-a787e252e7ee</trackback:ping>
      <pingback:server>http://dnnblog.venexus.com/pingback.aspx</pingback:server>
      <pingback:target>http://dnnblog.venexus.com/PermaLink,guid,36adc822-737e-4044-b4fc-a787e252e7ee.aspx</pingback:target>
      <dc:creator>Jeff Smith</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
We have a large DNN installation and we are moving everything from DNN 3.1 to DNN
4.0 and needed to do some testing. So, first we need to get the DNN database
from the local SQL Server 2000 to a remote SQL Server 2005.
</p>
        <p>
Here is what I did...
</p>
        <ol>
          <li>
Went into DNS and created a new subdomain called dev.somedomainname.com and pointed
it to the development server IP address. 
</li>
          <li>
Copied the entire DNN directory on the production server to the development server. 
</li>
          <li>
Reset permissions on the dev server for the DNN folder I copied from production to
allow <strong>Network Service</strong> full permission. 
</li>
          <li>
Created a new website on Dev in IIS and setup a host header for the new subdomain
and for localhost, pointing it to the DNN folder I copied from Prod. 
</li>
          <li>
Detached the production DNN database form the SQL Server 2000 instance. 
</li>
          <li>
Copied the MDF and LDF files for the DNN database from <strong>\mssql\MSSQL\Data</strong> on
Prod and moved them to <strong>\Microsoft SQL Server\MSSQL.1\MSSQL\Data</strong> 
on Dev (actually I just made a copy of the files in the same folder so I could quickly
get Prod running again and would not have to wait on the slower network connection
to move 3 Gb of data over, then moved them over to Dev and renamed them by removing
"Copy of " from the filename). 
</li>
          <li>
            <strong>Attached</strong> the database I copied from Prod using SQL Server Management
Studio. Part of this process automatically upgrades database to from 2000 to 2005. <strong><font color="#ff0000">WARNING!
You cannot move a SQL Server 2005 database back to SQL Server 2000 using the same
method. Nor can you use replication from SQL Server 2005 to a 2000 instance...or not
atleast when I tried it in CTP release a couple of months ago.</font></strong></li>
          <li>
            <font color="#000000">Opened web.config and changed the server name, username, and
password for the remote SQL Server.</font>
          </li>
          <li>
            <font color="#000000">Opened up a browser on the Dev server and went to http://dev.somedomainname.com
and confirmed site was assessible.</font>
          </li>
        </ol>
        <p>
          <font color="#000000">I will repeat these tasks again when I have done thorough testing
on Dev with the exception of copying the DNN root over. I will post any issues
I encounter...</font>
        </p>
        <img width="0" height="0" src="http://dnnblog.venexus.com/aggbug.ashx?id=36adc822-737e-4044-b4fc-a787e252e7ee" />
      </body>
      <title>Moving DNN 3.1 from SQL Server 2000 to SQL Server 2005</title>
      <guid isPermaLink="false">http://dnnblog.venexus.com/PermaLink,guid,36adc822-737e-4044-b4fc-a787e252e7ee.aspx</guid>
      <link>http://dnnblog.venexus.com/Moving+DNN+31+From+SQL+Server+2000+To+SQL+Server+2005.aspx</link>
      <pubDate>Mon, 05 Dec 2005 23:43:35 GMT</pubDate>
      <description>&lt;p&gt;
We have a large DNN installation and we are moving everything from DNN 3.1 to DNN
4.0 and&amp;nbsp;needed to do some testing. So, first we need to get the DNN database
from&amp;nbsp;the local SQL Server 2000&amp;nbsp;to a remote SQL Server 2005.
&lt;/p&gt;
&lt;p&gt;
Here is what&amp;nbsp;I did...
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
Went into DNS and created a new subdomain called dev.somedomainname.com and pointed
it to the development server IP address. 
&lt;li&gt;
Copied the entire DNN directory on the production server to&amp;nbsp;the development server. 
&lt;li&gt;
Reset permissions on the dev server for the DNN folder I copied from production to
allow &lt;strong&gt;Network Service&lt;/strong&gt; full permission. 
&lt;li&gt;
Created a new website on Dev in IIS and setup a host header for the new subdomain
and for localhost, pointing it to the DNN folder I copied from Prod. 
&lt;li&gt;
Detached the production DNN database form the SQL Server 2000 instance. 
&lt;li&gt;
Copied the MDF and LDF files for the DNN database from &lt;strong&gt;\mssql\MSSQL\Data&lt;/strong&gt; on
Prod and moved them to &lt;strong&gt;\Microsoft SQL Server\MSSQL.1\MSSQL\Data&lt;/strong&gt;&amp;nbsp;
on Dev (actually I just made a copy of the files in the same folder so I could quickly
get Prod running again and would not have to wait on the slower network connection
to move 3 Gb of data over, then moved them over to Dev and renamed them by removing
"Copy of " from the filename). 
&lt;li&gt;
&lt;strong&gt;Attached&lt;/strong&gt; the database I copied from Prod&amp;nbsp;using SQL Server Management
Studio. Part of this process automatically upgrades database to from 2000 to 2005. &lt;strong&gt;&lt;font color=#ff0000&gt;WARNING!
You cannot move a SQL Server 2005 database back to SQL Server 2000 using the same
method. Nor can you use replication from SQL Server 2005 to a 2000 instance...or not
atleast when I tried it in CTP release a couple of months ago.&lt;/font&gt;&lt;/strong&gt; 
&lt;li&gt;
&lt;font color=#000000&gt;Opened web.config and changed the server name, username, and password
for the remote SQL Server.&lt;/font&gt; 
&lt;li&gt;
&lt;font color=#000000&gt;Opened up a browser on the Dev server and went to http://dev.somedomainname.com
and confirmed site was assessible.&lt;/font&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
&lt;font color=#000000&gt;I will repeat these tasks again when I have done thorough testing
on Dev&amp;nbsp;with the exception of copying the DNN root over. I will post any issues
I encounter...&lt;/font&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://dnnblog.venexus.com/aggbug.ashx?id=36adc822-737e-4044-b4fc-a787e252e7ee" /&gt;</description>
      <category>DotNetNuke General;MS SQL Server</category>
    </item>
    <item>
      <trackback:ping>http://dnnblog.venexus.com/Trackback.aspx?guid=e9bd310e-dcb0-4dec-8218-dd61cd861acd</trackback:ping>
      <pingback:server>http://dnnblog.venexus.com/pingback.aspx</pingback:server>
      <pingback:target>http://dnnblog.venexus.com/PermaLink,guid,e9bd310e-dcb0-4dec-8218-dd61cd861acd.aspx</pingback:target>
      <dc:creator>Jeff Smith</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I had installed DotNetNuke 4.0 on a Windows 2003 Standard box using a remote SQL Server
2005 Enterprise database on a development box earlier tonight. I had navigated around
doing a few things and paused in the middle of updating the <strong>host</strong> account.
I might have reached the session expiration time before I returned, but I decided
to update the host password and clicked <strong>update. </strong>This is the error
that was returned:
</p>
        <h1>Unhandled Error
</h1>
        <h2>Error Details
</h2>
        <p>
          <table cellspacing="0" cellpadding="0" border="0">
            <tbody>
              <tr>
                <td>
                  <b>File</b>
                </td>
                <td>
                  <b>
                  </b>
                </td>
              </tr>
              <tr>
                <td>
                  <b>Error</b>  </td>
                <td>
                  <p>
                    <b>An error has occurred while establishing a connection to the server. When connecting
to SQL Server 2005, this failure may be caused by the fact that under the default
settings SQL Server does not allow remote connections. (provider: Named Pipes Provider,
error: 40 - Could not open a connection to SQL Server)</b>
                  </p>
                </td>
              </tr>
            </tbody>
          </table>
        </p>
        <p>
I believe this means I need to allow named pipes because by default SQL Server 2005
does not allow this type connection. I was not aware that DNN used Named Pipes and
I did not see anything concerning this in the Installation help. So, this is how you
change it....
</p>
        <ol>
          <li>
Start &gt; All Programs &gt; Microsoft SQL Server 2005 &gt; Configuration Tools &gt;
SQL Server Surface Are Configuration 
</li>
          <li>
Once opened, use Surface Area Configuration for Services and Connections 
</li>
          <li>
Select Using both TCP/IP and named pipes 
<br /><img alt="" hspace="0" src="http://www.venexus.com/images/dnn-help/surface-area-config-named-pipes.jpg" align="baseline" border="0" /></li>
          <li>
A notification that the Database Engine must be restarted before it takes effect will
be displayed. You can restart the engine from Admin Tools &gt; Services and restart
SQL Server (MSSQLSERVER)</li>
        </ol>
        <p>
I am assuming this is all that is required. I will post a comment here if I encounter
this error again. 
</p>
        <p>
 
</p>
        <p>
 
</p>
        <img width="0" height="0" src="http://dnnblog.venexus.com/aggbug.ashx?id=e9bd310e-dcb0-4dec-8218-dd61cd861acd" />
      </body>
      <title>DNN 4.0 and SQL Server 2005 Error using Named Pipes</title>
      <guid isPermaLink="false">http://dnnblog.venexus.com/PermaLink,guid,e9bd310e-dcb0-4dec-8218-dd61cd861acd.aspx</guid>
      <link>http://dnnblog.venexus.com/DNN+40+And+SQL+Server+2005+Error+Using+Named+Pipes.aspx</link>
      <pubDate>Sun, 04 Dec 2005 05:05:10 GMT</pubDate>
      <description>&lt;p&gt;
I had installed DotNetNuke 4.0 on a Windows 2003 Standard box using a remote SQL Server
2005 Enterprise database on a development box earlier tonight. I had navigated around
doing a few things and paused in the middle of updating the &lt;strong&gt;host&lt;/strong&gt; account.
I might have reached the session expiration time before I returned, but I decided
to update the host password and clicked &lt;strong&gt;update. &lt;/strong&gt;This is the error
that was returned:
&lt;/p&gt;
&lt;h1&gt;Unhandled Error
&lt;/h1&gt;
&lt;h2&gt;Error Details
&lt;/h2&gt;
&lt;p&gt;
&lt;table cellspacing=0 cellpadding=0 border=0&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;b&gt;File&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;
&lt;b&gt;&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;b&gt;Error&lt;/b&gt;&amp;nbsp;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;
&lt;b&gt;An error has occurred while establishing a connection to the server. When connecting
to SQL Server 2005, this failure may be caused by the fact that under the default
settings SQL Server does not allow remote connections. (provider: Named Pipes Provider,
error: 40 - Could not open a connection to SQL Server)&lt;/b&gt;
&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/p&gt;
&lt;p&gt;
I believe this means I need to allow named pipes because by default SQL Server 2005
does not allow this type connection. I was not aware that DNN used Named Pipes and
I did not see anything concerning this in the Installation help. So, this is how you
change it....
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
Start &amp;gt; All Programs &amp;gt; Microsoft SQL Server 2005 &amp;gt; Configuration Tools &amp;gt;
SQL Server Surface Are Configuration 
&lt;li&gt;
Once opened, use Surface Area Configuration for Services and Connections 
&lt;li&gt;
Select Using both TCP/IP and named pipes 
&lt;br&gt;
&lt;img alt="" hspace=0 src="http://www.venexus.com/images/dnn-help/surface-area-config-named-pipes.jpg" align=baseline border=0&gt; 
&lt;li&gt;
A notification that the Database Engine must be restarted before it takes effect will
be displayed. You can restart the engine from Admin Tools &amp;gt; Services and restart
SQL Server (MSSQLSERVER)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
I am assuming this is all that is required. I will post a comment here if I encounter
this error again. 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://dnnblog.venexus.com/aggbug.ashx?id=e9bd310e-dcb0-4dec-8218-dd61cd861acd" /&gt;</description>
      <category>DotNetNuke Errors;MS SQL Server</category>
    </item>
    <item>
      <trackback:ping>http://dnnblog.venexus.com/Trackback.aspx?guid=3d8f6b08-0101-4582-b2a6-59ea7f0297e5</trackback:ping>
      <pingback:server>http://dnnblog.venexus.com/pingback.aspx</pingback:server>
      <pingback:target>http://dnnblog.venexus.com/PermaLink,guid,3d8f6b08-0101-4582-b2a6-59ea7f0297e5.aspx</pingback:target>
      <dc:creator>Jeff Smith</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
A DotNetNuke site I have been working on that has some decent traffic, was experiencing
an occasional <strong>Out of Memory Error. </strong>During peak traffic times, IIS
would crap out and throw the error.<em></em>IISReset was neccessary sometimes to
alleviate the issue...very frustrating.
</p>
        <p>
          <strong>Here is the error:</strong>
        </p>
        <p>
          <strong>InnerException</strong>: Exception of type System.OutOfMemoryException was
thrown.<br /><b>Message</b>: DotNetNuke.Services.Exceptions.PageLoadException: Exception of type
System.OutOfMemoryException was thrown. ---&gt; System.OutOfMemoryException: Exception
of type System.OutOfMemoryException was thrown. --- End of inner exception stack trace
---<br /></p>
        <p>
          <strong>Environment:</strong>
        </p>
        <ul>
          <li>
DotNetNuke 3.1 
</li>
          <li>
Windows 2003 Server 
</li>
          <li>
All of the latest patches/service packs 
</li>
          <li>
MS SQL Server 2000 
</li>
          <li>
1.6 Gb Database size 
</li>
          <li>
Dual 3 Ghz Xeons with 2 Gb RAM Dell 2850</li>
        </ul>
        <p>
After digging into logs and looking around <strong>Host &gt; Schedule</strong>,
 I noticed that the errors coincided with the DNN Search Indexer schedule, so
I stopped it. This helped for a bit, but as the site continued to grow (over 500,000
pages), the error began reappearing. 
</p>
        <p>
I had tried a few other things to get rid of the issue without success. For example,
under <strong>Host &gt; Schedule </strong>I enabled DotNetNuke.Services.Cache.PurgeCache,
DOTNETNUKE and was purging every 30 minutes. I thought surely this would be the answer,
kicking myself for not enabling it earlier. However, to my disappointment, the error
persisted. ARRRRRRRR!
</p>
        <p>
I feel strongly that SQL Server should be on it's own server, but due to a server
shuffle in our rack and decommisioning an older server to make room for 3 other servers,
we have been using a single server for both IIS and SQL Server for this site. We are
working through a few Remote Procedure Call errors with DNN 3.x and 4.0 and SQL
Server 2005 (will discuss in later post) and were forced to use this setup. This error
would surely go away when we move our production database to our Quad Itanium Processor
server with 12 Gb RAM, but unfortunately this was not an option. So, I started digging
through MSDN and found the <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/adminsql/ad_config_9zfy.asp">Server
Memory Options</a>.
</p>
        <p>
"Use <b>max server memory</b> to prevent SQL Server from using more than the specified
amount of memory, thus leaving remaining memory available to start other applications
quickly. SQL Server does not immediately allocate the memory specified in <b>max server
memory</b> on startup. Memory usage is increased as needed by SQL Server until reaching
the value specified in <b>max server memory</b>. SQL Server cannot exceed this memory
usage unless the value of <b>max server memory</b> is raised." - MSDN
</p>
        <p>
So, I decided to give it a try...This is what I did:
</p>
        <ol>
          <li>
Opened <strong>Enterprise Manager</strong></li>
          <li>
Expanded the<strong> server group</strong></li>
          <li>
Right-clicked <strong>the server</strong></li>
          <li>
            <strong>C</strong>licked <strong>Properties</strong></li>
          <li>
Clicked the <strong>Memory</strong> tab 
</li>
          <li>
Under <strong>Dynamically configure SQL Server memory</strong>, lower the <strong>Maximum</strong></li>
        </ol>
        <p>
This seems to have worked. MS SQL Server is such a pig. By putting it on a diet and
setting max server memory, the error has disappeared. I decided to do some testing
and was beating up the server pretty bad with several crawlers/spiders I have
built and was hitting the site hard. The only error I experienced during my testing
was an occasional deadlock victim error, which is expected with the number of transactions
taking place on this database. I will live with a temporary error over an IIS crash
anyday. Moving everything back to seperate servers for IIS and SQL Server should help
greatly for a DNN site of this size. Let's just hope the DNN team can knock out a
few crtitical issues with RPC and SQL Direct provider.
</p>
        <img width="0" height="0" src="http://dnnblog.venexus.com/aggbug.ashx?id=3d8f6b08-0101-4582-b2a6-59ea7f0297e5" />
      </body>
      <title>Out of Memory Exception on Large DotNetNuke Website</title>
      <guid isPermaLink="false">http://dnnblog.venexus.com/PermaLink,guid,3d8f6b08-0101-4582-b2a6-59ea7f0297e5.aspx</guid>
      <link>http://dnnblog.venexus.com/Out+Of+Memory+Exception+On+Large+DotNetNuke+Website.aspx</link>
      <pubDate>Fri, 02 Dec 2005 07:32:13 GMT</pubDate>
      <description>&lt;p&gt;
A DotNetNuke site I have been working on that has some decent traffic, was experiencing
an occasional &lt;strong&gt;Out of Memory Error. &lt;/strong&gt;During peak traffic times, IIS
would crap out and throw the error.&lt;em&gt; &lt;/em&gt;IISReset was neccessary sometimes to
alleviate the issue...very frustrating.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Here is the error:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;InnerException&lt;/strong&gt;: Exception of type System.OutOfMemoryException was
thrown.&lt;br&gt;
&lt;b&gt;Message&lt;/b&gt;: DotNetNuke.Services.Exceptions.PageLoadException: Exception of type
System.OutOfMemoryException was thrown. ---&amp;gt; System.OutOfMemoryException: Exception
of type System.OutOfMemoryException was thrown. --- End of inner exception stack trace
---&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Environment:&lt;/strong&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
DotNetNuke 3.1 
&lt;li&gt;
Windows 2003 Server 
&lt;li&gt;
All of the latest patches/service packs 
&lt;li&gt;
MS SQL Server 2000 
&lt;li&gt;
1.6 Gb Database size 
&lt;li&gt;
Dual 3 Ghz Xeons with 2 Gb RAM Dell 2850&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
After digging into logs and looking&amp;nbsp;around &lt;strong&gt;Host &amp;gt; Schedule&lt;/strong&gt;,
&amp;nbsp;I noticed that the errors coincided with the DNN Search Indexer schedule, so
I stopped it. This helped for a bit, but as the site continued to grow (over 500,000
pages), the error&amp;nbsp;began reappearing.&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
I had tried a few other things to get rid of the issue without success. For example,
under &lt;strong&gt;Host &amp;gt; Schedule &lt;/strong&gt;I enabled DotNetNuke.Services.Cache.PurgeCache,
DOTNETNUKE and was purging every 30 minutes. I thought surely this would be the answer,
kicking myself for not enabling it earlier. However, to my disappointment, the error
persisted. ARRRRRRRR!
&lt;/p&gt;
&lt;p&gt;
I feel strongly that SQL Server should be on it's own server, but due to a server
shuffle in our rack and decommisioning an older server to make room for 3 other servers,
we have been using a single server for both IIS and SQL Server for this site. We are
working through a few Remote Procedure Call errors with DNN 3.x and 4.0&amp;nbsp;and SQL
Server 2005 (will discuss in later post) and were forced to use this setup. This error
would surely go away when we move our production database to our Quad Itanium Processor
server with 12 Gb RAM, but unfortunately this was not an option. So, I started digging
through MSDN and found the &lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/adminsql/ad_config_9zfy.asp"&gt;Server
Memory Options&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
"Use &lt;b&gt;max server memory&lt;/b&gt; to prevent SQL Server from using more than the specified
amount of memory, thus leaving remaining memory available to start other applications
quickly. SQL Server does not immediately allocate the memory specified in &lt;b&gt;max server
memory&lt;/b&gt; on startup. Memory usage is increased as needed by SQL Server until reaching
the value specified in &lt;b&gt;max server memory&lt;/b&gt;. SQL Server cannot exceed this memory
usage unless the value of &lt;b&gt;max server memory&lt;/b&gt; is raised." - MSDN
&lt;/p&gt;
&lt;p&gt;
So, I decided to give it a try...This is what I did:
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
Opened &lt;strong&gt;Enterprise Manager&lt;/strong&gt; 
&lt;li&gt;
Expanded the&lt;strong&gt; server group&lt;/strong&gt; 
&lt;li&gt;
Right-clicked &lt;strong&gt;the server&lt;/strong&gt; 
&lt;li&gt;
&lt;strong&gt;C&lt;/strong&gt;licked &lt;strong&gt;Properties&lt;/strong&gt; 
&lt;li&gt;
Clicked the &lt;strong&gt;Memory&lt;/strong&gt; tab 
&lt;li&gt;
Under &lt;strong&gt;Dynamically configure SQL Server memory&lt;/strong&gt;, lower the &lt;strong&gt;Maximum&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
This seems to have worked. MS SQL Server is such a pig. By putting it on a diet and
setting max server memory, the error has disappeared.&amp;nbsp;I decided to do some testing
and was&amp;nbsp;beating up the server pretty bad with several crawlers/spiders I have
built and was&amp;nbsp;hitting the site hard. The only error I experienced during my testing
was an occasional deadlock victim error, which is expected with the number of transactions
taking place on this database. I will live with a temporary error over an IIS crash
anyday. Moving everything back to seperate servers for IIS and SQL Server should help
greatly for a DNN site of this size. Let's just hope the DNN team can knock out a
few crtitical issues with RPC and SQL Direct provider.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://dnnblog.venexus.com/aggbug.ashx?id=3d8f6b08-0101-4582-b2a6-59ea7f0297e5" /&gt;</description>
      <category>MS SQL Server;DotNetNuke Errors</category>
    </item>
  </channel>
</rss>