{"id":58,"date":"2009-02-20T11:40:05","date_gmt":"2009-02-20T11:40:05","guid":{"rendered":"https:\/\/twproject.com\/blog\/?p=58"},"modified":"2017-10-02T08:53:44","modified_gmt":"2017-10-02T08:53:44","slug":"smarter-search-and-recent-object-functionality","status":"publish","type":"post","link":"https:\/\/twproject.com\/blog\/smarter-search-and-recent-object-functionality\/","title":{"rendered":"Smarter search and recent object functionality"},"content":{"rendered":"<p style=\"text-align: justify;\">Here we examine a technique to improve usability in complex applications by introducing smarter search and &#8220;recent objects&#8221; functionalities. As usability becomes more and more a crucial feature of applications, helping users with full-text search and recent object lists may still prove insufficient. You may need to go beyond these features, by having a way to keep track of &#8220;most used&#8221; objects, which will help to:<\/p>\n<p style=\"text-align: justify;\"><em>&#8211; guess what you are looking for<\/em><\/p>\n<p style=\"text-align: justify;\"><em>&#8211; find what you are searching for<\/em><\/p>\n<h2 style=\"text-align: justify;\">The problem<\/h2>\n<p style=\"text-align: justify;\">Lets see an example.<\/p>\n<p style=\"text-align: justify; padding-left: 30px;\">In these weeks you are working on items A, B and C of your favorite web application. Friday, you actually briefly worked on X, Y and Z before going home, as you had these for quite a while in the bottom of your to-do list. Now, you get back to work on Monday, and what you have in your &#8220;recent objects&#8221; list? Well, X, Y,Z. Useless. But you have full-text search. You search for the name of A, which actually hundreds of other objects share, and which maybe there are far more occurrences than in A, even if nobody has been using them for quite a while, so they fill results on top of your A. Useless. There is no easy way to get back to A: <em>something here is not working.<\/em><\/p>\n<p style=\"text-align: justify;\">This is a usability problem; in order to make your application more helpful, you should somehow <em>keep track of what is being used most often by the users<\/em>. How to do that? A complete answer is not trivial: as often happens in usability problems, what looks simple from the point of view of the user, is actually complex to solve and render. In the end, all complexity should be hidden, but the solution is not trivial.<\/p>\n<figure style=\"width: 450px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-299\" title=\"WindowOfInterest\" src=\"https:\/\/twproject.com\/blog\/wp-content\/uploads\/2009\/02\/diagram1.gif\" alt=\"Area of focused interest\" width=\"450\" height=\"335\" \/><figcaption class=\"wp-caption-text\">Area of focused interest in time.<\/figcaption><\/figure>\n<p style=\"text-align: justify;\">What is relevant to you is not just stuff that you occasionally visited, but say projects or documents to which you recently returned to again and again: you need to keep in focus a <em>window of attention<\/em>. See it in this way: you want the projects or documents to which you are frequently <em>linking to<\/em>. You need a sort of <strong>personal page rank<\/strong>.<\/p>\n<h2 style=\"text-align: justify;\">Recording hits<\/h2>\n<p style=\"text-align: justify;\">Well, the way to go is record what are doing; you have to record it somehow as a parallel, probably de-normalized table of &#8220;hits&#8221;, keeping it very simple, as you will probably get quickly really <em>a lot<\/em> of records there.<\/p>\n<table border=\"0\">\n<tbody>\n<tr>\n<td>\n<p><figure style=\"width: 341px\" class=\"wp-caption alignleft\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-330\" title=\"HitClass\" src=\"https:\/\/twproject.com\/blog\/wp-content\/uploads\/2009\/02\/capture_156.gif\" alt=\"A sample hit collector class in Java\/Hibernate\" width=\"341\" height=\"182\" \/><figcaption class=\"wp-caption-text\">A sample hit collector class in Java\/Hibernate<\/figcaption><\/figure><\/td>\n<td valign=\"top\">\n<p style=\"text-align: justify;\">In the picture you see an example &#8220;hit&#8221;, when a user looks and\/or works on something. Notice that as you will collect a lot of data, you will need to filter out in function also of your security model: that is why we have the &#8220;areaId&#8221; field there.<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p style=\"text-align: justify;\">Now however you decide to collect hits, you will have to meet the problem of how to <em>weigh<\/em> them, that is, have a <em>hit rank function<\/em> defined on users, objects and time.<\/p>\n<p style=\"text-align: justify;\">In our implementation, we created a function that for every Teamwork user and every entity (be it task, issue, diary entry, document, worklog action) computes the user hit rank for the entity; if the entity is relevant for the user, the hit rank will be high. Rank gets high by \u201chitting\u201d i.e. visiting an entity.<\/p>\n<p style=\"text-align: justify;\">As we said before, interest is assumed to fade in time, otherwise you\u2019d end to have too many entities with high rank: so you have to define a sort of window of attention, with a degradation of relevance.<\/p>\n<table border=\"0\">\n<tbody>\n<tr>\n<td valign=\"top\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-301 aligncenter\" style=\"margin-top: 10px; margin-bottom: 10px;\" title=\"gaussian\" src=\"https:\/\/twproject.com\/blog\/wp-content\/uploads\/2009\/02\/capture_149.gif\" alt=\"gaussian\" width=\"446\" height=\"215\" \/><\/td>\n<td valign=\"top\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-332 alignleft\" style=\"margin: 15px;\" title=\"GaussianParameters\" src=\"https:\/\/twproject.com\/blog\/wp-content\/uploads\/2009\/02\/capture_157.gif\" alt=\"GaussianParameters\" width=\"402\" height=\"110\" \/><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p style=\"text-align: justify;\">You need a way to compute degradation of relevance; we defined degradation with the rigth side of a <a title=\"Gaussian curve\" href=\"http:\/\/en.wikipedia.org\/wiki\/Gaussian_function\" target=\"_blank\" rel=\"noopener\">Gaussian curve<\/a> with the constants in the code.<\/p>\n<p style=\"text-align: justify;\">Hit rank can be refined to <strong>group rank <\/strong>notion, if your application has a notion of workgroup, so that you could define the activity of the group. Another benefit of hit rank is that you can efficiently monitor your application usage, or \u201cactivity\u201d, and could lead to introducing badges <em>et cetera<\/em>.<\/p>\n<h2 style=\"text-align: justify;\">Example implementation<\/h2>\n<p style=\"text-align: justify;\">An example implementation is in <a title=\"Teamwork web site\" href=\"http:\/\/www.twproject.com\" target=\"_blank\" rel=\"noopener\">Teamwork<\/a>: as it includes project management, business processes and groupware, there are many objects around. Hit rank has proven useful in a number of ways to improve usability, <strong>without impoverishing<\/strong> the model.<\/p>\n<p style=\"text-align: justify;\">&#8220;You mostly visited&#8221; is a portlet which you may have on your dashboards, and you also see search results ranked:<\/p>\n<table style=\"text-align: justify;\" border=\"0\">\n<tbody>\n<tr>\n<td valign=\"top\">\n<p><figure id=\"attachment_309\" aria-describedby=\"caption-attachment-309\" style=\"width: 236px\" class=\"wp-caption alignleft\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-309\" title=\"highestRanked\" src=\"https:\/\/twproject.com\/blog\/wp-content\/uploads\/2009\/02\/capture_150.gif\" alt=\"Your highest ranked entities.\" width=\"236\" height=\"297\" \/><figcaption id=\"caption-attachment-309\" class=\"wp-caption-text\">Your highest ranked entities.<\/figcaption><\/figure><\/td>\n<td valign=\"top\">\n<p><figure id=\"attachment_323\" aria-describedby=\"caption-attachment-323\" style=\"width: 241px\" class=\"wp-caption alignleft\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-323\" title=\"portletRankConfig\" src=\"https:\/\/twproject.com\/blog\/wp-content\/uploads\/2009\/02\/capture_154.gif\" alt=\"Configuration of rank portlet.\" width=\"241\" height=\"280\" \/><figcaption id=\"caption-attachment-323\" class=\"wp-caption-text\">Configuration of rank portlet.<\/figcaption><\/figure><\/td>\n<td valign=\"top\">\n<p><figure id=\"attachment_324\" aria-describedby=\"caption-attachment-324\" style=\"width: 388px\" class=\"wp-caption alignleft\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-324\" title=\"search\" src=\"https:\/\/twproject.com\/blog\/wp-content\/uploads\/2009\/02\/capture_155.gif\" alt=\"Search results ranked.\" width=\"388\" height=\"355\" \/><figcaption id=\"caption-attachment-324\" class=\"wp-caption-text\">Search results ranked.<\/figcaption><\/figure><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p style=\"text-align: justify;\">In this way you should always have &#8220;at hand&#8221; what you&#8217;re really working on: you should be able to <em>access your most relevant objects with one click<\/em>.<\/p>\n<h2 style=\"text-align: justify;\">References<\/h2>\n<p style=\"text-align: justify;\">Google&#8217; page rank paper: <a href=\"http:\/\/infolab.stanford.edu\/~backrub\/google.html\" target=\"_blank\" rel=\"noopener\">The Anatomy of a Large-Scale Hypertextual Web Search Engine<\/a><\/p>\n<p style=\"text-align: justify;\">A discussion on badges: <a href=\"http:\/\/stackoverflow.com\/questions\/135647\/how-do-badges-work-in-stackoverflow\" target=\"_blank\" rel=\"noopener\">http:\/\/stackoverflow.com\/questions\/135647\/how-do-badges-work-in-stackoverflow<\/a><\/p>\n<p style=\"text-align: justify;\">An introduction to full text search: <a href=\"http:\/\/www.javaworld.com\/javaworld\/jw-09-2006\/jw-0925-lucene.html\" target=\"_blank\" rel=\"noopener\">http:\/\/www.javaworld.com\/javaworld\/jw-09-2006\/jw-0925-lucene.html<\/a><\/p>\n<p style=\"text-align: justify;\">Hibernate full-text search: <a href=\"http:\/\/www.hibernate.org\/410.html\" target=\"_blank\" rel=\"noopener\">http:\/\/www.hibernate.org\/410.html<\/a><\/p>\n<p style=\"text-align: justify;\">Our contribution to Hibernate full-text search: <a href=\"http:\/\/www.hibernate.org\/432.html\" target=\"_blank\" rel=\"noopener\">http:\/\/www.hibernate.org\/432.html<\/a><\/p>\n<p style=\"text-align: justify;\">See hit rank in action in the <a title=\"Teamwork demo\" href=\"http:\/\/demo.twproject.com\/applications\/teamwork\/createUserEnvironment.jsp\" target=\"_blank\" rel=\"noopener\">demo<\/a> or by <a title=\"Teamwork downloads\" href=\"http:\/\/www.twproject.com\/download.page\" target=\"_blank\" rel=\"noopener\">installing the web app<\/a>.<\/p>\n<p>See an interesting infographic here\u00a0<a href=\"https:\/\/firstsiteguide.com\/anatomy-search-engine-infographic\/\">Anatomy of a Search Engine<\/a>\u00a0by First Site Guide<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Here we examine a technique to improve usability in complex applications by introducing smarter search and &#8220;recent objects&#8221; functionalities. As usability becomes more and more a crucial feature of applications, helping users with full-text search and recent object lists may still prove insufficient. You may need to go beyond these features, by having a way &hellip; <a href=\"https:\/\/twproject.com\/blog\/smarter-search-and-recent-object-functionality\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Smarter search and recent object functionality&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_custom_body_class":"","_custom_post_class":"","footnotes":""},"categories":[1],"tags":[],"class_list":["post-58","post","type-post","status-publish","format-standard","hentry","category-news"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.1 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Smarter search and recent object functionality - Twproject.com<\/title>\n<meta name=\"description\" content=\"Here we examine a technique to improve usability in complex applications by introducing smarter search and &quot;recent objects&quot; functionalities. As usability\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/twproject.com\/blog\/smarter-search-and-recent-object-functionality\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Smarter search and recent object functionality - Twproject.com\" \/>\n<meta property=\"og:description\" content=\"Here we examine a technique to improve usability in complex applications by introducing smarter search and &quot;recent objects&quot; functionalities. As usability\" \/>\n<meta property=\"og:url\" content=\"https:\/\/twproject.com\/blog\/smarter-search-and-recent-object-functionality\/\" \/>\n<meta property=\"og:site_name\" content=\"Twproject.com\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/twproject\" \/>\n<meta property=\"article:published_time\" content=\"2009-02-20T11:40:05+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2017-10-02T08:53:44+00:00\" \/>\n<meta name=\"author\" content=\"Twproject staff\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Twproject staff\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/twproject.com\/blog\/smarter-search-and-recent-object-functionality\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/twproject.com\/blog\/smarter-search-and-recent-object-functionality\/\"},\"author\":{\"name\":\"Twproject staff\",\"@id\":\"https:\/\/twproject.com\/blog\/#\/schema\/person\/da893b575f6e2b7a1c2e1f9ff6de4e94\"},\"headline\":\"Smarter search and recent object functionality\",\"datePublished\":\"2009-02-20T11:40:05+00:00\",\"dateModified\":\"2017-10-02T08:53:44+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/twproject.com\/blog\/smarter-search-and-recent-object-functionality\/\"},\"wordCount\":890,\"publisher\":{\"@id\":\"https:\/\/twproject.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/twproject.com\/blog\/smarter-search-and-recent-object-functionality\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/twproject.com\/blog\/wp-content\/uploads\/2009\/02\/diagram1.gif\",\"articleSection\":[\"News\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/twproject.com\/blog\/smarter-search-and-recent-object-functionality\/\",\"url\":\"https:\/\/twproject.com\/blog\/smarter-search-and-recent-object-functionality\/\",\"name\":\"Smarter search and recent object functionality - Twproject.com\",\"isPartOf\":{\"@id\":\"https:\/\/twproject.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/twproject.com\/blog\/smarter-search-and-recent-object-functionality\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/twproject.com\/blog\/smarter-search-and-recent-object-functionality\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/twproject.com\/blog\/wp-content\/uploads\/2009\/02\/diagram1.gif\",\"datePublished\":\"2009-02-20T11:40:05+00:00\",\"dateModified\":\"2017-10-02T08:53:44+00:00\",\"description\":\"Here we examine a technique to improve usability in complex applications by introducing smarter search and \\\"recent objects\\\" functionalities. As usability\",\"breadcrumb\":{\"@id\":\"https:\/\/twproject.com\/blog\/smarter-search-and-recent-object-functionality\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/twproject.com\/blog\/smarter-search-and-recent-object-functionality\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/twproject.com\/blog\/smarter-search-and-recent-object-functionality\/#primaryimage\",\"url\":\"\",\"contentUrl\":\"\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/twproject.com\/blog\/smarter-search-and-recent-object-functionality\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/twproject.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Smarter search and recent object functionality\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/twproject.com\/blog\/#website\",\"url\":\"https:\/\/twproject.com\/blog\/\",\"name\":\"Twproject.com\",\"description\":\"Twproject is a full featured web based project management software that gives you full visibility and control over your projects.Twproject is also a time tracking software, a bug tracking software, a project planning software.\",\"publisher\":{\"@id\":\"https:\/\/twproject.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/twproject.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/twproject.com\/blog\/#organization\",\"name\":\"Twproject - Project Management Software\",\"url\":\"https:\/\/twproject.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/twproject.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/twproject.com\/blog\/wp-content\/uploads\/twroject-logo-m.png\",\"contentUrl\":\"https:\/\/twproject.com\/blog\/wp-content\/uploads\/twroject-logo-m.png\",\"width\":331,\"height\":110,\"caption\":\"Twproject - Project Management Software\"},\"image\":{\"@id\":\"https:\/\/twproject.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/twproject.com\/blog\/#\/schema\/person\/da893b575f6e2b7a1c2e1f9ff6de4e94\",\"name\":\"Twproject staff\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/twproject.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/c4b6e8399059214de08987af10d007755925cbc1efa44a270a4a5ab552f7a862?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/c4b6e8399059214de08987af10d007755925cbc1efa44a270a4a5ab552f7a862?s=96&d=mm&r=g\",\"caption\":\"Twproject staff\"},\"description\":\"Twproject is built by a small, solid and very efficient company. Its developers are ready to give support on the solution. Follow us for news, tips and updates.\",\"sameAs\":[\"https:\/\/www.facebook.com\/twproject\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Smarter search and recent object functionality - Twproject.com","description":"Here we examine a technique to improve usability in complex applications by introducing smarter search and \"recent objects\" functionalities. As usability","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/twproject.com\/blog\/smarter-search-and-recent-object-functionality\/","og_locale":"en_US","og_type":"article","og_title":"Smarter search and recent object functionality - Twproject.com","og_description":"Here we examine a technique to improve usability in complex applications by introducing smarter search and \"recent objects\" functionalities. As usability","og_url":"https:\/\/twproject.com\/blog\/smarter-search-and-recent-object-functionality\/","og_site_name":"Twproject.com","article_author":"https:\/\/www.facebook.com\/twproject","article_published_time":"2009-02-20T11:40:05+00:00","article_modified_time":"2017-10-02T08:53:44+00:00","author":"Twproject staff","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Twproject staff","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/twproject.com\/blog\/smarter-search-and-recent-object-functionality\/#article","isPartOf":{"@id":"https:\/\/twproject.com\/blog\/smarter-search-and-recent-object-functionality\/"},"author":{"name":"Twproject staff","@id":"https:\/\/twproject.com\/blog\/#\/schema\/person\/da893b575f6e2b7a1c2e1f9ff6de4e94"},"headline":"Smarter search and recent object functionality","datePublished":"2009-02-20T11:40:05+00:00","dateModified":"2017-10-02T08:53:44+00:00","mainEntityOfPage":{"@id":"https:\/\/twproject.com\/blog\/smarter-search-and-recent-object-functionality\/"},"wordCount":890,"publisher":{"@id":"https:\/\/twproject.com\/blog\/#organization"},"image":{"@id":"https:\/\/twproject.com\/blog\/smarter-search-and-recent-object-functionality\/#primaryimage"},"thumbnailUrl":"https:\/\/twproject.com\/blog\/wp-content\/uploads\/2009\/02\/diagram1.gif","articleSection":["News"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/twproject.com\/blog\/smarter-search-and-recent-object-functionality\/","url":"https:\/\/twproject.com\/blog\/smarter-search-and-recent-object-functionality\/","name":"Smarter search and recent object functionality - Twproject.com","isPartOf":{"@id":"https:\/\/twproject.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/twproject.com\/blog\/smarter-search-and-recent-object-functionality\/#primaryimage"},"image":{"@id":"https:\/\/twproject.com\/blog\/smarter-search-and-recent-object-functionality\/#primaryimage"},"thumbnailUrl":"https:\/\/twproject.com\/blog\/wp-content\/uploads\/2009\/02\/diagram1.gif","datePublished":"2009-02-20T11:40:05+00:00","dateModified":"2017-10-02T08:53:44+00:00","description":"Here we examine a technique to improve usability in complex applications by introducing smarter search and \"recent objects\" functionalities. As usability","breadcrumb":{"@id":"https:\/\/twproject.com\/blog\/smarter-search-and-recent-object-functionality\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/twproject.com\/blog\/smarter-search-and-recent-object-functionality\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/twproject.com\/blog\/smarter-search-and-recent-object-functionality\/#primaryimage","url":"","contentUrl":""},{"@type":"BreadcrumbList","@id":"https:\/\/twproject.com\/blog\/smarter-search-and-recent-object-functionality\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/twproject.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Smarter search and recent object functionality"}]},{"@type":"WebSite","@id":"https:\/\/twproject.com\/blog\/#website","url":"https:\/\/twproject.com\/blog\/","name":"Twproject.com","description":"Twproject is a full featured web based project management software that gives you full visibility and control over your projects.Twproject is also a time tracking software, a bug tracking software, a project planning software.","publisher":{"@id":"https:\/\/twproject.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/twproject.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/twproject.com\/blog\/#organization","name":"Twproject - Project Management Software","url":"https:\/\/twproject.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/twproject.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/twproject.com\/blog\/wp-content\/uploads\/twroject-logo-m.png","contentUrl":"https:\/\/twproject.com\/blog\/wp-content\/uploads\/twroject-logo-m.png","width":331,"height":110,"caption":"Twproject - Project Management Software"},"image":{"@id":"https:\/\/twproject.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/twproject.com\/blog\/#\/schema\/person\/da893b575f6e2b7a1c2e1f9ff6de4e94","name":"Twproject staff","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/twproject.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/c4b6e8399059214de08987af10d007755925cbc1efa44a270a4a5ab552f7a862?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/c4b6e8399059214de08987af10d007755925cbc1efa44a270a4a5ab552f7a862?s=96&d=mm&r=g","caption":"Twproject staff"},"description":"Twproject is built by a small, solid and very efficient company. Its developers are ready to give support on the solution. Follow us for news, tips and updates.","sameAs":["https:\/\/www.facebook.com\/twproject"]}]}},"_links":{"self":[{"href":"https:\/\/twproject.com\/blog\/wp-json\/wp\/v2\/posts\/58","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/twproject.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/twproject.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/twproject.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/twproject.com\/blog\/wp-json\/wp\/v2\/comments?post=58"}],"version-history":[{"count":1,"href":"https:\/\/twproject.com\/blog\/wp-json\/wp\/v2\/posts\/58\/revisions"}],"predecessor-version":[{"id":9419,"href":"https:\/\/twproject.com\/blog\/wp-json\/wp\/v2\/posts\/58\/revisions\/9419"}],"wp:attachment":[{"href":"https:\/\/twproject.com\/blog\/wp-json\/wp\/v2\/media?parent=58"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/twproject.com\/blog\/wp-json\/wp\/v2\/categories?post=58"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/twproject.com\/blog\/wp-json\/wp\/v2\/tags?post=58"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}