JDK-4764726 : stddoclet: Add member names as meta keyword tags to improve API search
  • Type: Enhancement
  • Component: tools
  • Sub-Component: javadoc(tool)
  • Affected Version: 1.4.0
  • Priority: P4
  • Status: Resolved
  • Resolution: Fixed
  • OS: other
  • CPU: generic
  • Submitted: 2002-10-17
  • Updated: 2014-05-05
  • Resolved: 2002-11-20
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availabitlity Release.

To download the current JDK release, click here.
1.4.2 mantisFixed
Add name/content keywords.  We already use:

  In HTML file:
  <META NAME="keywords" CONTENT="java.lang.String,String class">

  The advantage of using "NAME=keywords" is that we can weight all keywords 
  meta tags higher (than body text) for Inktomi searches.
  This page can also be found using Inktomi search query string:

But we need to do the same thing for methods.  We could use "method" as
the name:
  <META NAME="method" CONTENT="compareTo(Object)">

  This can be found using Inktomi query:

  <META NAME="keywords" CONTENT="compareTo() method,Double.compareTo(Object)">

  which can be found using this Inktomi query:

CONVERTED DATA BugTraq+ Release Management Values COMMIT TO FIX: mantis FIXED IN: mantis INTEGRATED IN: mantis mantis-b08

PUBLIC COMMENTS Keywords in a class file now appear as follows if -keywords is passed in. If -keywords is not passed in, only the first (class) tag appears. <META NAME="keywords" CONTENT="p1.C1 class"> <META NAME="keywords" CONTENT="field1"> <META NAME="keywords" CONTENT="field2"> <META NAME="keywords" CONTENT="method1()"> <META NAME="keywords" CONTENT="method2()"> Regression test is at <ws>/test/com/sun/javadoc/MetaTag/MetaTag.java ###@###.### 2002-11-10

EVALUATION We need some way to find member definitions to improve search ###@###.### 2002-10-17 Discussed with SwoRDFish team, and concluded: - There is no current Dublin Core meta tag standard for programming languages - They recommend we include both Dublin Core "dc:subject" data element per file in addition to an equivalent normal 'keywords' meta tags, as shown below. There can be at most one dc:subject tag per file. <meta name='dc:subject' content='String Class, java.lang.String'> <meta name='keywords' content='String Class, java.lang.String'> <meta name='keywords' content='compareTo(Object) method'> <meta name='keywords' content='compareTo(String) method'> <meta name='keywords' content='compareToIgnoreCase(String) method'> ... ###@###.### 2002-10-28 Based on a discussion with Inktomi on the following meta tags: <META name="keywords" content="Double class"> <META name="keywords" content="compareTo(Object) method"> With the meta data defined as above, All of the following searches would find this page : double class compareto object method compareTo(Object) Including parameter types will strengthen the search for methods when the parameter type is included, but will dilute the search for classes. Thus, someone searching for the Object class page will find the above page. This leads me to consider dropping the parameter types. We should include at least the leading paren, so they can distinguish constructors from classes or methods from fields or classes by searching for "compareTo(". Need to find out if search term "compareTo(Object)" would match on keyword "compareTo(". We could add both parens such as compareTo(), which might be more natural to type. but showing no args for a method that contains args is a bit peculiar. NOTE: A search for the parameter types and names, but not types alone, will match in the full-text search. So now we have: <meta name="dc:subject" content="String Class, java.lang.String"> <meta name="keywords" content="String Class, java.lang.String"> <meta name="keywords" content="compareTo() method"> <meta name="keywords" content="compareToIgnoreCase() method"> Where it's not clear whether to include the trailing paren ')'. ###@###.### 2002-10-30 Consider including both name='keywords' and name='method', so user can search for keywords either by default, or more specifically by uinsg "+method:compareTo" (in Inktomi). Perhaps we can create our own java namespace: <meta name="keywords" content="compareTo() method"> <meta name="java:method" content="compareTo()"> I believe Inktomi would require search term: +java:method:compareTo() ###@###.### 2002-10-31 CCC Proprosal: Add members to the name/contents meta keywords. For example, for the compareTo(Object) method in the Double class, we will add: <META name="keywords" content="compareTo() method"> Using name="keywords" is a search engine standard (used by Inktomi and others). This standard gives greater weight to the value of the content attribute than to body text. Notice the given example does not include the parameter type Object. This is because including it would add Object as a keyword for not only this method, but also the Double class (which is defined in the same HTML file), diluting the ability to find the Object class. This extends to members the <META> tagging of classes started in 1.4.1. CCC Decision: "Approve, on the condition that the proposed behavior be enabled by an undocumented -meta (or whatever) flag. Not all javadoc output is intended as fodder for search engines, and META tags for every member will take up quite a bit of space." My interpretation is that the insertion of meta keywords will be turned OFF by default, and a new -meta (or whatever) flag will turn it on. ###@###.### 2002-11-08 Another reason not to include overloads (such as add(), add(Object)) or parameter types is because search engines will penalize pages with repeated keywords. ###@###.### 2002-11-09 This is an extension of the feature added in 1.4.1: 4034096: Add support for HTML keywords via META tag for class names ###@###.### 2002-11-22