Under construction
1/31/00 First draft
5/22/00 Reviewed by Rob
8/8/00 add stuff about ugly vs simple search
11/20/00 update substring vs text string vs people searches
11/20/00 Last modified by SY
In general, full search allows searches on almost every field. There are two modes of searching-
"ugly" and "simple". For this release, only simple Node and User full search are implemented.
Allow search on almost every field of Node and User objects.
Allow display of any # of fields.
Allows ordering of display columns (up to 3 fields).
Allow sorting by up to 3 fields (ugly mode only).
Allow download of search results in CSV format.
Limited to 10,000 rows because of database performance issues. This number may change
as performance is tested.
Ugly vs. Simple Mode
In simple mode, each row of the result is one record, one object. This is more intuitive since
generally a record corresponds to one computer or printer. Rows are sorted alphabetically
by object name. If asked to display a certain field, the results will show all entries in the field
if the object satisfies the search parameters. Search results will not show more advanced names-
IPC, interface name, and IP address name. These names can be viewed on the node info page.
In ugly mode, the results are shown from a database point of view. For node, the ugly mode
is more powerful because the results can be sorted on any field (for instance, department).
Also, ugly mode includes searching and displaying all name types. Ugly mode for Node will
eventually be implemented because of its power.
The first section describes the types of expressions and operators allowed in full search. The second section,
search parameter types, describes the different types of fields- for instance, an IP address field will
allow different formats from People fields. The Table of Search Types, Fields and
Field Types maps field type to field and also shows the default display.
Search Expressions, Operators and Parsing
The following describes the various types of expressions and operators allowed in the full search
input fields. Note! Because of Sybase limitations, more than 4 boolean operators or separators may result in an
error. For example, in "Created By" field, the string "not waugh not alchew not pmurray not reuber not
dru" may cause an invalid input error.
Regular expressions
* and % are multi-character wildcards
_ and ? are single character wildcards
[ ] indicates a range of characters
[^] indicates NOT in a range of characters
Separators
separators are non-quoted spaces
trailing and leading spaces are stripped off unless quoted
Quotes: first quote(double only) must be preceded by separator or beginning of line
Boolean Operators- listed in order of precedence
NOT operators: "NOT" , "not". If there is no preceding operator, AND is implied
(i.e., "A not B" is equivalent to "A and not B")
AND operators: "AND", "and"
OR operators: "OR", "or"
Unsupported: not (a and b)
Examples: "A not B or D and C" is equivalent to "(A and not B) or (D and C)"
Substring input field - automatic substring search, booleans, wildcards
Label/Value input fields
People input fields
Select box- allow multiple selections with choice of boolean operators
Date fields
Radio buttons
Checkboxes
IP Address field
Not searchable- display only
Sort order pulldown
Display order pulldown
Search Parameter Types- elaborated
Text input field
The text input field allows all the expressions and operators described above.
Substring input field
Same as regular input field but also allows substring search. i.e., if "eng" is entered, the search is actually
"*eng*". Generally for fields that have an associated list, like group or department. Here are examples:
terman engineering = "*terman* *engineering*"
"Asian Languages" and Art = "*Asian Languages*" and "*art*"
aero/astro and not mech eng = "*aero/astro*" and not "*mech* *eng*"
Label/Value input field
"=" will separate label from value
all the expressions described above are allowed
search as if "
People Input Fields
For people names (netdb user, node user, node administrator, network consultant, admin team members,
created by, modified by):
Full Name -text search. This can cause problems if the user has a unknown middle initial. For instance,
a person named "Leland J. Stanford" will not be found if the search is for "Leland Stanford". But "Leland*Stanford"
will find this person.
SUNetID- this field allows all the expressions described above
AdminTeam- this field is for searching AdminTeam names. The semicolon (which was used to
designate an admin team under Node administrator) should not be appended
Date Fields
Two input fields ("On and Before", "On and After" or From/To) will be used for date searches
(last login, expiration date, created on, modified on). No wildcards are allowed. Allowable date formats are:
m/d/yyyy, m/dd/yyyy, mm/d/yyyy, mm/dd/yyyy
m-d-yyyy, m-dd-yyyy, mm-d-yyyy, mm-dd-yyyy
Radio Buttons
Checkboxes
Address Fields
IP Address Space Input Format
w.x.y.z/n - existing address space with prefix
e.g. 171.64.20.0/24
w.x.y/n - existing address space without trailing zeroes
e.g. 171.64.20/24
w.x.y.z - existing address space without prefix
e.g. 171.64.20.0
w.x.y.* - existing address space with trailing zeroes replaced by "*"
e.g. 171.64.20.*
IP Address Input Format
Must be in form x.y.y.y where x is a number from 0-255. y is a number
from 0-255 or a wildcard. i.e., wildcards are allowed but first octet must
be fully defined (e.g., 36 or 171). If y is a wildcard, subsequent octets
do not need to be listed- e.g., "36.6.*" is a valid search string
Following wildcards are allowed: *, ?, %, _, [ ], [^]
* and % are multi-character wildcards
_ and ? are single character wildcards
[ ] indicates a range of characters
[^] indicates NOT in a range of characters
Hardware Address
Accept lower or uppercase hexadecimal digits (A-F)
Ignore punctuation (common ones are colon, dash)
Accept regular expressions
Not Searchable- Display Only
For fields that do not need to be searchable but need to be displayed.
Sort Order- only for ugly mode
Sort order will be determined by dropdown menus. The maximum number of fields that
can be sorted on is 3. "--" means do not sort on this field. Use listing order if user uses
same sort order for multiple fields (user selects '1" for more than 1 field)
Sort order refers to vertical sorting. For instance, if Name is the first sort field and IP
Address is the second sort field, search results will be listed in alphabetically order.
If a Name has multiple IP addresses, those will be sorted in numerical order.
The field used to sort does not have to be displayed.
Display Order
refers to the order of the vertical columns across the search results page.
determined by selection in dropdown menu. User can select a number or "yes" or "no".
Order will first be by number. Then "yes" fields are generally displayed in the order found on the
full search page. "no" means don't display this field
There is one box to enter IP address/space searches- results can be IP address spaces or
dynamic dhcp addresses. There will be separate sort/display lines for address spaces and
dynamic addresses.
DHCP Options search can be done by either using the label/value input field or by selecting
the option in the select box. If using the select box, the value is assumed to be anything.
To search for domain, use name field with wildcards. e.g., *.stanford.org
There is one box to enter IP address searches. This can be either an interface IP address,
an IPC address or a template address space. In ugly mode, the type of IP address to display
can be designated.
In ugly mode, IP Address Type can be sort/eddisplayed. Options are "IP Address" and "IPC Address",
Template AS. IP Address is checked by default.
In ugly mode, Name Type can be sorted/displayed. Options are "Host Name", "Alias", "Interface Name",
"IP Address Name", "IPC Address Name". "Host Name" and "Alias" are checked by default.
DHCP Options search can be done by either using the label/value input field or by selecting
the option in the select box. If using the select box, the value is assumed to be anything.
Contradictory searches- Each object type generates a separate search. If the user attempts
to search on a field that does not apply to a given object, that search fails with a warning
message. e.g., if "domain" and "node" objects are clicked and the user fills out the department
field, the domain search will fail since departments are not associated with domains. But
the node search will return nodes in that department
There is one box to enter IP address searches. This can be either an interface IP address,
an IPC address, Dynamic address, or address space. IP addresses have a separate
display/sort from IP address space. For IP addresses, there are 3 checkboxes to indiate
which types of address to display. Only interface is checked by default.
Results returned by object with links to the object index #
Results sorted by object name
All entries listed for requested fields
Limited results, depending on # of columns requested
# of Objects
# of Display Fields
500
>15
1000
13-15
3000
7-12
7500
<7
Ugly Mode
In ugly mode, Limited Sort- can only sort on up to 3 fields. May restrict which fields are sortable.
In ugly mode, if a field that is displayed has multiple entries (e.g. group, user), one line will
be used for each entry. For example, if a node search to be displayed with groups and node a
is in groups c and d, there will be two lines refering to the same node. In another example,
if a node has 2 users and 2 groups and both users and groups are to be displayed, 4 lines
will be displayed.
Sort Order- (same as Sort Order in input requirements)
Sort order will be determined by dropdown menus. The maximum number of fields that
can be sorted on is 3. "--" means do not sort on this field. If user selects same sort order
for multiple fields, use listing order of fields to break ties
Sort order refers to vertical sorting. For instance, if Name is the first sort field and IP
Address is the second sort field, search results will be listed in alphabetically order.
If a Name has multiple IP addresses, those will be sorted in numerical order.
The field used to sort does not have to be displayed.
All Modes
Only horizontal wide display will be allowed in this version. Records will be displayed
one per line while displayed fields will be in columns. The results will be as wide as necessary
to include all displayed fields.
CSV format-
Button at bottom of search page
Multiple entries in a field are separated by pipe |
Fields are separated by commas
One object per row
People will be displayed as follows: (kerb principal). ex. "Rob Riepel (riepel)"
Display Order (same as Display Order in Input Requirements)
refers to the order of the vertical columns across the search results page.
determined by selection in dropdown menu. User can select a number or "yes" or "no".
Order will first be by number. Then "yes" fields are displayed in the order found on the
full search page. "no" means don't display this field
Field Associations
The following fields are associated with each other. These associations should be
shown. See Sample outputs
Aliases and MXes are associated with Node Names
Interfaces have the following associations: hardware address, IP address,
Active Address, DHCP flag, Roaming flag, DHCP options
for Node object, Departments are associated with the LNA flag and Network
Consultant
Display in PRE mode because Netscape does not handle large tables well (can eat
all workstation memory).
Some Sample Outputs:
here's node sunia5 which shows both node name associations and interface associations:
# Name:Node Name:Alias Interface# Address Active Address Hardware Address Receives Mail For DHCP DHCP Option Roaming
1 peon5 peon5a 1 131.119.75.10 N dead.beef.1119 abercrombie Y filename=interface1 Y sunia5 peon6 abs log-servers=interface1 sunia5-2 sunia5-2a 131.119.75.12 Y peon4m sunia5a 2 131.119.75.11 Y dead.beef.2229 peon5 N log-servers=interface2 N peon5m next-server=interface2 131.119.75.13 N sunia-mx1 IPC 131.119.75.14 Y sunia5-2m 131.119.75.15 N sunia5m zakm zathras
Groups with something in the comment field. Display: group name, comment. Sort by group.
Groups with spaces in their name. Display: group name. Sort by group.
Domain
Domains not in stanford.edu. Display domain, group. Sort by domain.
Domains in highwire group but not in stanford group. Display domain. Sort by domain.
Domains modified last week. Display domain, Modified When, Modified By. Sort by Modified when.
Domains not created by riepel. Display domain, created by. Sort by Created By.
Domains created before 1/1/2000. Display domain, created when. Sort by Created When.
Domains with non-empty comment fields. Display domain, comment. Sort by domain.
Domains not in the Stanford group. Display domain, group, comment. Sort by group.
User
Users with SystemManagement object rights. Display User, Department. Sort by User.
Users that have left Stanford- report?
Users with All Objects but not All Groups. Display user name, group, department. Sort by group.
Users not in Stanford group with Host object rights. Display username, group. Sort by group.
Admin Team
Teams which "sunia" is a member of. Display: Name, Members, Created By, Created When.
Sort by group
Teams with no members. Display: Name, Department, Group, Comment, Created By
Sort by Department
Teams created after 1/1/2000 which have a group and a department and comment and
were not created by "ginar". Display: Department, Group, Comment, Created By (no name).
Sort by Name.
Network
All address spaces. Display: AS, name, AS group. Sort by Name, then AS.
Address spaces in group "Mechanical Engineering". Display: AS, name, Reserves. Sort
by name.
Address spaces using dhcp option "d*" that are part of networks in group Networking. Display
name, address spaces, dhcp options. Sort by name
Address spaces with a /24 or greater. Display address spaces, name, comment. Sort by
network size
Networks not in group Networking. Display name, group, comment, reserves. Sort by
group.
Node
All IPCs that are fastpaths (using hardware address first 6 digits 0080d3) that are not in group networking and
were modified in the last month. Display: Fastpath name, IP address, group, modifed by, last modified.
Sort by fastpath name.
All nodes modified by LNA econway in the month of July 1999. Display: Node name, IP address,
department, group. Sort by Department, then IP address
All templates that are in address space 171.64.52/22 but are not in Civil Engineering group.
Display: Template name, group, Created By, Created When. Sort by group.
All nodes in building 02-520 which are in Mechanical Engineering department but not in Mechanical
Engineering group. Display: Node name, nodetypes, IP address, Make/model, OS, group, Administrator.
Sort by group, then nodetype
All nodes in Durand building which are in group Electrical Engineering but not in group Aero/Astro.
Display name, IP address, Room. Sort by room.
All nodes that expired on or before June 30th, 1999 that are in rescomp group but not in the Rains
apartments. Display: Node name, IP address, Location, expiration date. Sort by Location, then IP address.
All nodes in group LINCS which are not in buildings Birch/Oak, Poplar or Press. Display: node name,
IP address, department, location, user. Sort by Department, then IP address.
All nodes modified people who aren't "farrell" that are in the Earth Sciences group. Display: Node name,
node type, IP address, modfied by, modified when. Sort by Modified By, then IP address.
All nodes with DHCP turned off that have "ROAM" in the comment field. Display: Node name, IP address.
Sort by IP address.
All names starting with "s" in the "stanford.edu" domain that have mxes in stanford.edu that are in the
"University Libraries" department. Display: node name, IP address, mx, location. Sort by MX, then
location.
All nodes running MacOS (all versions) in buildings in quad 02 that were created within the last 2 years with
a comment in the field. Display: Node name, IP address, OS, location, comment. Sort by OS, then location.
All nodes that are made by Apple that run DHCP, are in "stanford.edu", have an alias, have a room, have
a user, have an administrator whose name begins with "c" and have an IP address. Display: Node name,
alias, IP address, Make/Model. administrator, room. Sort by Make/Model, then administrator.
All nodes with hardware address starting with "0000a380" that are not in 172.2*.*.*. Display: Node name,
IP address, Make/Model, OS, location, administrator. Sort by administrator, then location.
All Cisco devices with an OS other than "IOS". Display: Node name, IP address, Make/Model, OS, group.
Sort by OS, then group.
All nodes with admin team "CSCDF" that are not in group "Computer Science". Display: node name,
IP address, make/model, location, group. Sort by group, then IP address.
All addresses in the "Registrar's Office" department that are not in building Old Union.
Display: node name, IP address, location. Sort by location, then IP address.
All nodes in group networking that are not in Pine Hall and are simple nodes and are in 171.64. Display:
Node name, IP address, location. Sort by location, then IP.
All nodes in the Medical group starting with "s" or "w" or "m" or "x", in 171.65.*.* which are not in building
"1000 Welch Road" which have a room that is not "basement" . Display: Node name, IP address,
location, room. Sort by Location, then Room.
All IPCs which have one or more IPC addresses. Display: Node name, IP address, location. Sort by
IP address.
All nodes, interfaces, alises, mxes starting with "s" in stanford.edu. Display: Names, name type,
IP address. Sort by name.
All nodes starting with "www" that are not in stanford.edu, that were created in the last 2 years. Display:
Node name, IP address, Group, Comments. Sort by group, then IP address.
All nodes with Custom Fields. Display: Node name, IP address, custom fields. sort by node name.
All nodes with DHCP options in stanford.edu with IP address in 171.64. Display: Node name, node type,
IP address, DHCP options, DHCP on/off, Roaming on/off. Sort by DHCP option, then node type.
All inactive nodes with DHCP on. Display: node name, IP address. Sort by IP address.
All nodes that are advanced but not routers that are not in the networking group. Display: Node name,
node type, IP address, make/model, group. Sort by group, then IP address.
All Object Search
All objects in "my groups" for user "jaldrich". Display object name, group,
IP address. Sort by object type, object name.
All objects of IP address 171.64.20.* and 172.24.20.*. Display object name, object type, IP
address. Sort by IP address.