<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Search Nuggets &#187; Mridu Agarwal</title>
	<atom:link href="http://blog.comperiosearch.com/blog/author/mridu/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.comperiosearch.com</link>
	<description>A blog about Search as THE solution</description>
	<lastBuildDate>Mon, 13 Jun 2016 08:59:45 +0000</lastBuildDate>
	<language>en-US</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=3.9.40</generator>
	<item>
		<title>Experimenting with Open Source Web Crawlers</title>
		<link>http://blog.comperiosearch.com/blog/2016/04/29/experimenting-with-open-source-web-crawlers/</link>
		<comments>http://blog.comperiosearch.com/blog/2016/04/29/experimenting-with-open-source-web-crawlers/#comments</comments>
		<pubDate>Fri, 29 Apr 2016 11:03:42 +0000</pubDate>
		<dc:creator><![CDATA[Mridu Agarwal]]></dc:creator>
				<category><![CDATA[Elasticsearch]]></category>
		<category><![CDATA[English]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[OpenWebSpider]]></category>
		<category><![CDATA[Scrapy]]></category>
		<category><![CDATA[search]]></category>
		<category><![CDATA[Web Crawling]]></category>

		<guid isPermaLink="false">http://blog.comperiosearch.com/?p=4080</guid>
		<description><![CDATA[Whether you want to do market research or gather financial risk information or just get news about your favorite footballer from various news site,  web scraping has many uses. In my quest to learn know more about web crawling and scraping , I decided to test couple of Open Source Web Crawlers which were not [...]]]></description>
				<content:encoded><![CDATA[<p lang="en-US">Whether you want to do market research or gather financial risk information or just get news about your favorite footballer from various news site,  web scraping has many uses.</p>
<p lang="en-US">In my quest to learn know more about web crawling and scraping , I decided to test couple of Open Source Web Crawlers which were not only easily available but quite powerful as well. In this article I am mostly going to cover their basic features and how easy they are to start with.</p>
<p lang="en-US">If you are like one of those persons who likes to quickly get started while learning something, I would suggest that you try <a href="http://www.openwebspider.org/">OpenWebSpider</a> first.</p>
<p lang="en-US">It is a simple web browser based open source crawler and search engine which is simple to install and use and is very good for those who are trying to get acquainted to web crawling . It stores webpages in MySql or MongoDb. I used MySql for my testing purpose. You can follow the steps <a href="http://www.openwebspider.org/documentation/openwebspider-js/">here</a> to install it. It&#8217;s pretty simple and basic.</p>
<p lang="en-US">So, once you have installed everything , you just need to open a web-browser at <a href="http://127.0.0.1:9999/">http://127.0.0.1:9999/</a> and you are ready to crawl and search. Just check your database settings, type the Url of the site you want to crawl and within couple of minutes, you have all the data you need. You can even search it going to the search tab and typing in your query. Whoa! That was quick and compact and needless to say you don’t need any programming skills to crawl it.</p>
<p lang="en-US">If you are trying to create an off-line copy of your data or your very own mini Wikipedia, I think go for this as it’s the easiest way to do it.</p>
<p lang="en-US">Following are some screen shots:</p>
<p lang="en-US"><a href="http://blog.comperiosearch.com/wp-content/uploads/2016/04/OS1.png"><img class="alignleft wp-image-4083 size-full" src="http://blog.comperiosearch.com/wp-content/uploads/2016/04/OS1.png" alt="OpenWebSpider" width="613" height="438" /></a></p>
<p lang="en-US"><a href="http://blog.comperiosearch.com/wp-content/uploads/2016/04/OS2.png"><img class="alignleft wp-image-4086 size-full" src="http://blog.comperiosearch.com/wp-content/uploads/2016/04/OS2.png" alt="OpenSearchWeb" width="611" height="441" /></a></p>
<p lang="en-US" style="text-align: left"><a href="http://blog.comperiosearch.com/wp-content/uploads/2016/04/OS3.png"><img class="alignleft size-full wp-image-4087" src="http://blog.comperiosearch.com/wp-content/uploads/2016/04/OS3.png" alt="OpenSearchWeb" width="611" height="441" /></a></p>
<p lang="en-US" style="text-align: left">You can also see the this Search engine demo <a href="http://lab.openwebspider.org/search_engine/">here</a>, before actually getting started.</p>
<p lang="en-US" style="text-align: left">Ok, after getting my hands on into web crawling, I was curious to do  more sophisticated stuff like extracting topics from a web site where I do not have any RSS feed or API. Extracting this structured data could be quite important to many business scenarios where you are trying to follow competitor&#8217;s product news or gather data for business intelligence. I decided to use <a href="http://scrapy.org/">Scrapy</a> for this experiment.</p>
<p lang="en-US" style="text-align: left">The good thing about Scrapy is that it is not only fast and simple, but very extensible as well. While installing it on my windows environment, I had few hiccups mainly because of the different compatible version of python but in the end, once you get it, it&#8217;s very simple(Isn&#8217;t that how you feel anyways , once things works ? Anyways, forget it! :D). Follow these links, if you are having trouble installing Scrapy like me:</p>
<p lang="en-US" style="text-align: left"><a href="https://github.com/scrapy/scrapy/wiki/How-to-Install-Scrapy-0.14-in-a-64-bit-Windows-7-Environment">https://github.com/scrapy/scrapy/wiki/How-to-Install-Scrapy-0.14-in-a-64-bit-Windows-7-Environment</a></p>
<p lang="en-US" style="text-align: left"><a href="http://doc.scrapy.org/en/latest/intro/install.html#intro-install">http://doc.scrapy.org/en/latest/intro/install.html#intro-install</a></p>
<p lang="en-US" style="text-align: left">After installing, you need to create a Scrapy project. Since we are doing more customized stuff than just crawling the entire website, this requires more effort and knowledge of programming skills and sometime browser tools to understand the HTML DOM. You can follow <a href="http://doc.scrapy.org/en/latest/intro/overview.html">this</a> link to get started with you first Scrapy project .Once you have crawled the data that you need, it would be interesting to feed this data into a search engine. I have also been looking for open source web crawlers for Elastic Search and this looked like the perfect opportunity. Scrapy provides integration with Elastic Search out of the box , which is awesome. You just need to install the Elastic Search module for Scrapy(of course Elastic Search should be running somewhere) and configure the Item Pipeline for Scrapy. Follow <a href="http://blog.florian-hopf.de/2014/07/scrapy-and-elasticsearch.html">this</a> link for the step by step guide. Once done, you have the fully integrated crawler and search system!</p>
<p lang="en-US" style="text-align: left">I crawled <a href="http://primehealthchannel.com">http://primehealthchannel.com</a> and created an index named &#8220;healthitems&#8221; in Scrapy.</p>
<p lang="en-US" style="text-align: left">To search the elastic search index, I am using Chrome extension <span style="font-weight: bold">Sense</span> to send queries to Elastic Search, and this is how it looks</p>
<p lang="en-US" style="text-align: left">GET /scrapy/healthitems/_search</p>
<p style="text-align: left"><a href="http://blog.comperiosearch.com/wp-content/uploads/2016/04/ES1.png"><img class="alignleft wp-image-4082 size-large" src="http://blog.comperiosearch.com/wp-content/uploads/2016/04/ES1-1024x597.png" alt="Elastic Search" width="1024" height="597" /></a></p>
<p lang="en-US" style="text-align: left">I hope you had fun reading this and now wants to try some of your own cool ideas . Do let us know how you used it and which crawler you like the most!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.comperiosearch.com/blog/2016/04/29/experimenting-with-open-source-web-crawlers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Content Enrichment Web Service SharePoint 2013 &#8211; Advantages and Challenges</title>
		<link>http://blog.comperiosearch.com/blog/2016/04/26/content-enrichment-web-service-sharepoint-2013/</link>
		<comments>http://blog.comperiosearch.com/blog/2016/04/26/content-enrichment-web-service-sharepoint-2013/#comments</comments>
		<pubDate>Tue, 26 Apr 2016 11:23:22 +0000</pubDate>
		<dc:creator><![CDATA[Mridu Agarwal]]></dc:creator>
				<category><![CDATA[English]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[CEWS]]></category>
		<category><![CDATA[Content Enrichment Web Service]]></category>
		<category><![CDATA[FAST Search for SharePoint]]></category>
		<category><![CDATA[SharePoint 2013 Search]]></category>

		<guid isPermaLink="false">http://blog.comperiosearch.com/?p=4017</guid>
		<description><![CDATA[If you have worked with search solutions before, you will know that very often there is a need to process data before it can be displayed in search results. This processing might be required to address some of(but not limited to) these common issues: Missing metadata issues Inconsistent metadata issues Cleansing of content Integration of semantic [...]]]></description>
				<content:encoded><![CDATA[<p>If you have worked with search solutions before, you will know that very often there is a need to process data before it can be displayed in search results. This processing might be required to address some of(but not limited to) these common issues:</p>
<ul>
<li>Missing metadata issues</li>
<li>Inconsistent metadata issues</li>
<li>Cleansing of content</li>
<li>Integration of semantic layers/Automatic tagging</li>
<li>Integration with 3rd party service</li>
<li>Merging data from other sources</li>
</ul>
<p><strong>Content Enrichment Web Service</strong> in SharePoint 2013 is a SOAP-based service within the content processing component that can be used to achieve this. The figure below shows a part of the process that takes place in the content processing component of SharePoint search. <img src="https://i-msdn.sec.s-msft.com/dynimg/IC618173.gif" alt="Content enrichment within content processing" width="481" height="286" /></p>
<p>Content Enrichment Web Service SharePoint 2013 combines the goodness of both <strong>FAST for SharePoint Search</strong> and <strong>SharePoint Search </strong> to offer a whole new set of possibilities and has its own challenges. To see an implementation example, check the <a href="https://msdn.microsoft.com/en-us/library/office/jj163982.aspx">MSDN link</a> which pretty much sums up the basic steps. In this post we are going to look at some of the advantages and challenges of CEWS coming from a FAST 2010 background:</p>
<p>1.<strong> CEWS is a service and you DON&#8217;T have to deploy it in your SharePoint environment</strong>: Perhaps this is the biggest architectural change  from the content processing perspective. What this means is that your code no longer runs in a sandbox environment within <strong>SharePoint Server</strong>. The webservice can be hosted anywhere outside your SharePoint server thus reducing deployment headaches and huge number of approvals required to deploy the executable files. I can see operations/infrastructure team/administrators smiling.</p>
<p>2.<strong>The web service processes and returns managed properties, not crawled properties: </strong>Managed properties correspond to what actually gets indexed and displayed in search results. So, this reduces some of the confusion as why I cant see the updated results( perhaps you had forgotten to map your crawled property to a managed property and wait you will have to index it AGAIN!). Nightmare!</p>
<p>3. <strong>You can define a trigger to limit the set of items that are processed by the web service: </strong>In FAST 2010, each item had to pass through the pipeline whether you wanted to process it or not. This check had to be done in the code. Trigger in 2013 will allow us to define this check outside the code so that only for selected content, web service is called. This will optimize the overall performance and improve crawling time, if you only want to process a subset of the content.</p>
<blockquote><p>So far, so good! But.. there are certain challenges we need to look at and see how we can overcome it. In fact, this is the most important part when you are architecting your CEWS solution:</p></blockquote>
<p>1. <strong>The content enrichment callout step can only be configured with a single web service endpoint :</strong> Now this sounds very limiting.  I have multiple search applications and earlier I maintained the logic in different solutions. Do I need to combine them all into a single service? What about the maintenance and change request? Well there are several possible technologies one could consider to solve this but what I did in my project was to create a WCF routing service and let the routing service handle my multiple web services based on filters. You could also use it to implement load-balancing and fault tolerance. Here in the following example, I have two content sources &#8220;xmlfile&#8221; and &#8220;EpiFileShare&#8221;. I want to have two different services &#8220;xmlsvc&#8221; and &#8220;episvc&#8221; to process these different sources. This is how I will configure the end points in my WCF Routing Service:   <a href="http://blog.comperiosearch.com/wp-content/uploads/2016/01/router.png"><img class="aligncenter  wp-image-4027" src="http://blog.comperiosearch.com/wp-content/uploads/2016/01/router-1024x278.png" alt="endpoints" width="708" height="192" /></a> 2.<strong> Only one condition can be configured for Trigger. Different search application will require different triggers: </strong>Now, this can again be solved by using WCF routers and filters and configuring separate endpoints for separate triggers. Here I am using default managed property &#8220;ContentSource&#8221; as a trigger/filter to determine my service endpoint. <a href="http://blog.comperiosearch.com/wp-content/uploads/2016/01/rouyer.png"><img class="aligncenter wp-image-4025 " src="http://blog.comperiosearch.com/wp-content/uploads/2016/01/rouyer-1024x286.png" alt="config file" width="737" height="206" /></a> To summarize, I have shown some of the advantages and challenges of the new CEWS architecture in SharePoint 2013 search and how you can overcome it. Hope that now you want  to try this soon and share your experience with us.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.comperiosearch.com/blog/2016/04/26/content-enrichment-web-service-sharepoint-2013/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Enhancing Web Analytics with Search Analytics</title>
		<link>http://blog.comperiosearch.com/blog/2015/05/20/enhancing-web-analytics-search-analytics/</link>
		<comments>http://blog.comperiosearch.com/blog/2015/05/20/enhancing-web-analytics-search-analytics/#comments</comments>
		<pubDate>Wed, 20 May 2015 12:43:27 +0000</pubDate>
		<dc:creator><![CDATA[Mridu Agarwal]]></dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[English]]></category>
		<category><![CDATA[Analytics]]></category>
		<category><![CDATA[Google Analytics]]></category>
		<category><![CDATA[Search Analytics]]></category>

		<guid isPermaLink="false">http://blog.comperiosearch.com/?p=3694</guid>
		<description><![CDATA[Web Analytics is the process of measuring and analyzing web data to assess and improve the effectiveness of a website.Tracking and improving search (search analytics) is an important part of web analytics which is often forgotten by many site owners. Website search analytics should not be underestimated as it can provide valuable insights into what [...]]]></description>
				<content:encoded><![CDATA[<p>Web Analytics is the process of measuring and analyzing web data to assess and improve the effectiveness of a website.Tracking and improving search (search analytics) is an important part of web analytics which is often forgotten by many site owners. Website search analytics should not be underestimated as it can provide valuable insights into what users are looking for or what they are not able to find on the site. Recently, I read somewhere about an organization which increased their conversion rates by just increasing the size of their search box and working on the searches with zero results. Therefore, measuring and analyzing search could be a very important aspect in improving website&#8217;s effectiveness.</p>
<p>In this post, I will show you 5 quick steps to get started with Search Analytics:</p>
<p><strong>1. Get Search Logs: </strong>There are various tools you can use to track and analyze your search. You many choose any one of them to get started depending on your business domain and organizational policies. I am using Google Analytics as a tool for this post simply because not only it is very powerful but it is very easy to start with. You can just create a google account and get started for &#8220;free&#8221;. No infrastructure setup required. Place the JavaScript code in your website pages and you are ready to start measuring.</p>
<p>Please note that there are many other tools in the market for more specific purposes and with higher complexities. It really depends on what your needs are. Here, we will continue with Google Analytics.</p>
<p><strong>2. Understand your Site Search Usage</strong>: Many people underestimate the use of search on their website. So, the first step is to measure how many people are using search. Even if 5-10% of your visitors are using search, it is not a bad figure (depending on your business domain and site setup). This could very well be the most used navigation on your website.</p>
<p><img class="alignnone wp-image-3697 " src="http://blog.comperiosearch.com/wp-content/uploads/2015/05/1-1024x282.png" alt="Site Search Usage" width="544" height="150" /></p>
<p><strong>3. Analyze your Search Terms:</strong> Get a list of searched terms to start with. Most often, you will see that there is a pattern. Few terms are searched more than the others. It is important to analyze the top 10 searched terms individually. You might want to group the other terms (long tail) and analyze them separately.</p>
<p>&nbsp;</p>
<p><img class="alignnone size-full wp-image-3698" src="http://blog.comperiosearch.com/wp-content/uploads/2015/05/2.png" alt="Search Terms" width="188" height="165" /></p>
<p><a href="http://blog.comperiosearch.com/wp-content/uploads/2015/05/3.png"><img class="alignnone size-full wp-image-3699" src="http://blog.comperiosearch.com/wp-content/uploads/2015/05/3.png" alt="Searched Terms List" width="255" height="219" /></a></p>
<p style="text-align: left">Try conducting searches for these searched term yourself and see if you are satisfied with the results. Did you get what you were expecting as the number one result? If not, you might want to make changes to your site to improve your search results.</p>
<p style="text-align: left">Some additional things to ponder:</p>
<p style="text-align: left">Looking at the searched terms do you see what you were expecting? Are their unknown terms?For example, if you have a product support site you might expect users to search more for some newly launched products.Do you see the product name or numbers in your searched term report? Are people looking for product comparison?</p>
<p style="text-align: left">If you have some unexpected terms in your top 10 searched terms, then you might want to consider adding additional content related to those terms.</p>
<p style="text-align: left"><strong>4. Evaluate User Experience: </strong>Are users happy or frustrated by the time they leave the site? Can they find what they are looking for or are they leaving immediately after performing a search? This is the toughest part because you are not sitting with the user and you can make only as much sense as the reports could tell. But the good news is that there are some metrics to watch out for which can provide valuable insights related to user experience. Couple of these metrics is shown in the picture below.</p>
<p> <img class="alignnone  wp-image-3700" src="http://blog.comperiosearch.com/wp-content/uploads/2015/05/4-300x139.png" alt="Search Metrics" width="339" height="157" /></p>
<p><strong>Result Pageviews/Search</strong> tells you about the number of results user viewed for the search term. If the number is too high you know that it is taking too long for users to find what they are looking for and they will not be happy about it.</p>
<p><strong>% Search Exits</strong> is equivalent to bounce rate in web analytics. This number tells you about the percentage of people who left immediately after performing a search for that term without clicking on any of the search results. We would want this number to be as low as possible.</p>
<p>It is also important to evaluate <strong>search terms that produced 0 results</strong>. Users will not be happy to find zero results for their searches. There is no out of box metric in Google Analytics to track this but there are various ways to get around it using Events or Custom variables.</p>
<p><strong>5. Improve Search Experience: </strong>What would you do if you found that there is a <strong>35% Search Exit</strong> for your top keyword or <strong>20</strong> <strong>Result Pageviews/Search? </strong>In some cases this might be because the term is not spelled correctly or simply because user is using a term which is not an exact match with your content. For example, in an intranet environment of an organization, an employee is searching for &#8220;vacation list&#8221; but not getting any hits because you have &#8220;holiday list&#8221; in your content. Here, you might consider adding synonyms or best bets for these frequently search terms. Adding spelling correction like &#8220;Did you mean&#8221; or providing &#8220;related searches&#8221; for results could further help improve user experience and keep the visitors engaged in your website. If there are zero results for a search term you might want to consider adding additional content as well.</p>
<p>To conclude, I would say that there are lot of ways in which you can improve your site search analytics but the important part is to get started. It is not as tough as it may sound and it is worth the effort considering the amount of valuable information you get and the direct insight into user&#8217;s mind.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.comperiosearch.com/blog/2015/05/20/enhancing-web-analytics-search-analytics/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
