Word Roots are a Part of History. "Histories Make Men Wise" -- Bacon.
Search Help
中文搜索帮助
-
在您的搜索词后加加一个星号 (*) 可以增加获得搜索结果的可能性。比如说,您用笔作为搜索词,您可以获得所有那些在描述中含有笔的东西;您用笔芯作为搜索词,您可以获得所有那些在描述中含有笔芯的东西;但若您用笔*作为搜索词,您可以获得所有那些在描述中含有笔, 笔芯或笔记本的东西.
使用逻辑操作符,会使您的搜索变得准确。这些逻辑操作符包括:
或,与,非。您也可用
( )对搜索词加以组织,或提供搜索词的优先次序。但使用逻辑操作符时, 逻辑操作符须用空格与搜索词或其它逻辑操作符分隔开,否则逻辑操作符会被视为搜索词的一部分。逻辑操作符
与 是可以省略的。比如说,
-
电灯 台灯 可以搜索那些在描述中既含有电灯又含有台灯的东西。(注意:电灯 台灯之间有空格)
-
电灯 与 台灯 可以搜索那些在描述中含有电灯与台灯的东西。(注: 逻辑操作符 与 是可以省略的, 逻辑操作符 与 前后皆有空格)
-
电路 或 断路器 可以搜索那些在描述中含有电路或断路器的东西
-
电灯 非 台灯 可以搜索那些在描述中含有电灯但不含台灯的东西
-
"电灯泡" 若您将一个或几个搜索词用引号引起来,它们就变成了搜索短语,搜索将按整个搜索短语进行,不按各个搜索词分别进行。
-
电路* 注意这里使用了 *, 可以搜索那些在描述中含有电路前词缀的东西
-
(电灯 红色) 或 (灯泡 非 蓝色) 可以搜索那些在描述中含有红色电灯或非蓝色灯泡的东西
-
橙色 (笔 或 铅笔) 可以搜索那些在描述中含有橙色笔或橙色铅笔的东西
-
注:此搜索技术与谷歌的搜索类似。自家制作了一个编译器。该编译器对用户的搜索输入进行扫描,并解析成一个表达树,再将其翻译成SQL SELECT 语句的 WHERE 条款, 然后对含有字词的表栏进行全文本检索。但是,由于Microsoft contains() 函数的限制,逻辑操作符
非 不能用于逻辑操作符
或 之后,也不能用于一个独立的搜索词之前,
非 只能用于逻辑操作符
与 之后 (注: 记得逻辑操作符
与 是可省略的)。
所以如下之搜索行不通: 1) 外衣
或 非 裤子
2)
非 裤子 (作为一个独立的搜索词)
但如下之搜索行得通: 1) 外衣
与 非 裤子
2) 外衣
非 裤子
自家生产的编译器实现如下语法:The following Grammar is implemented by the homegrown compiler:
PrimaryExpression ::= TermExpr | PhraseExpr | ParenthesizedExpression
AndExpression ::= PrimaryExpression | AndExpression AndOperator PrimaryExpression //leftRecursive: need to be converted to PrimaryExpr {AndOperator PrimaryExpr}*
OrExpression ::= AndExpression | OrExpression OrOperator AndExpression //leftRecursive: need to be converted to AndExpr {OrOperator AndExpr}*
ParenthesizedExpression ::= (OrExpression)
TermExpr ::= TermToken
PhraseExpr :: = PhraseToken
AndOperator ::= emptyString (or blank space) between TermTokens, PhraseToken, and ParenthesizedExpression | AND | AND NOT | NOT | 与 | AND 非 | 与 NOT | 与 非 | 非
OrOperator ::= OR | 或
Note: AND, OR, NOT, (或, 与, 非) must be separated with blank space from a search term, otherwise they will be considered as a part of the search term
注: 使用逻辑操作符时, 逻辑操作符须用空格与搜索词或其它逻辑操作符分隔开,否则逻辑操作符会被视为搜索词的一部分。
English Search Help:
-
Using an asterisk symbol (*) at the end of your search word can increase the possibility of returning more search results. For example, if you use pen to do the search, it will return all items that have pen word in the item description; if you use pencil to do the search, it will return all items that have pencil in item description; if you use pen* to do the search, it will return all items that have pen, or pencil.
For more accurate search, you can use logical operators such as
and, or, not in your search, and use parenthesises
( ) to group your search words or search terms, or to have priority. The logical operator
and is optional and can be omitted. For example:
-
light bulb Searches for items containing inflectional forms of the words light and bulb.
-
light and bulb Searches for items containing inflectional forms of the words light and bulb. The keyword and is optional and can be omitted.
-
circuit or breaker Searches for items containing infectional forms of the words circuit or breaker.
-
lamp not bulb Searches for items containing inflectional forms of the word lamp but not the word bulb
-
"light bulb" enclose your phrase in quotation marks to make the search by the whole phrase in its entirety
-
circuit* Searches for words that begin with the prefix circuit
-
(lamp red) or (bulb not blue) Searches for items containing inflectional forms of the words lamp and red, or bulb but not containing the word blue
-
orange (pen or pencil) Searches for items containing inflectional forms of the words orange pen, or orange pencil
-
Note: The search technique is similar to Google's search. User's search input is scanned and parsed by a homegrown compiler into an expression tree, and then translated into a WHERE clause of a Transact-SQL SELECT statement to perform SQL Server full-text search on full-text indexed columns containing character-based data type. However due to the limitation of the contains() function from Microsoft, logical operator
not can not be used after
or, neither can it be used before a standalone search term, it can only be used after logical operator
and (which can be omitted).
So the following will not work: 1) jacket
or not pants
2)
not pants (as a standalone search term)
But the following works: 1) jacket
and not pants
2) jacket
not pants
The following Grammar is implemented by the homegrown compiler:
PrimaryExpression ::= TermExpr | PhraseExpr | ParenthesizedExpression
AndExpression ::= PrimaryExpression | AndExpression AndOperator PrimaryExpression //leftRecursive: need to be converted to PrimaryExpr {AndOperator PrimaryExpr}*
OrExpression ::= AndExpression | OrExpression OrOperator AndExpression //leftRecursive: need to be converted to AndExpr {OrOperator AndExpr}*
ParenthesizedExpression ::= (OrExpression)
TermExpr ::= TermToken
PhraseExpr :: = PhraseToken
AndOperator ::= emptyString (or blank space) between TermTokens, PhraseToken, and ParenthesizedExpression | AND | AND NOT | NOT | 与 | AND 非 | 与 NOT | 与 非 | 非
OrOperator ::= OR | 或
Note: AND, OR, NOT, (与, 或, 非) must be separated with blank space from a search term, otherwise they will be considered as a part of the search term