Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
MariaDB
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nexedi
MariaDB
Commits
2d9d1407
Commit
2d9d1407
authored
Mar 06, 2002
by
serg@serg.mysql.com
Browse files
Options
Browse Files
Download
Plain Diff
Merge work:/home/bk/mysql-4.0
into serg.mysql.com:/usr/home/serg/Abk/mysql-4.0
parents
c00ddbab
9730790c
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
25 additions
and
6 deletions
+25
-6
Docs/manual.texi
Docs/manual.texi
+5
-0
myisam/ft_boolean_search.c
myisam/ft_boolean_search.c
+10
-4
mysql-test/r/fulltext.result
mysql-test/r/fulltext.result
+8
-1
mysql-test/t/fulltext.test
mysql-test/t/fulltext.test
+2
-1
No files found.
Docs/manual.texi
View file @
2d9d1407
...
...
@@ -48665,6 +48665,11 @@ Our TODO section contains what we plan to have in 4.0. @xref{TODO MySQL 4.0}.
@itemize @bullet
@item
Fixed bug with indexless boolean fulltext search.
@item
Fixed bug that sometimes appeared when fulltext search was used
with ``const'' tables.
@item
Fixed bug in truncation operator for boolean fulltext search.
@item
Allow numeric user id to @code{mysqld --user=#}.
myisam/ft_boolean_search.c
View file @
2d9d1407
...
...
@@ -81,17 +81,21 @@ typedef struct st_ft_info {
MI_INFO
*
info
;
uint
keynr
;
enum
{
UNINITIALIZED
,
READY
,
INDEX_SEARCH
,
INDEX_DONE
,
SCAN
}
state
;
uint
with_scan
;
FTB_EXPR
*
root
;
QUEUE
queue
;
MEM_ROOT
mem_root
;
}
FTB
;
int
FTB_WORD_cmp
(
void
*
v
__attribute__
((
unused
)),
byte
*
a
,
byte
*
b
)
int
FTB_WORD_cmp
(
void
*
v
__attribute__
((
unused
)),
FTB_WORD
*
a
,
FTB_WORD
*
b
)
{
/* ORDER BY docid, ndepth DESC */
int
i
=
CMP_NUM
(
((
FTB_WORD
*
)
a
)
->
docid
,
((
FTB_WORD
*
)
b
)
->
docid
);
int
i
=
CMP_NUM
(
a
->
docid
,
b
->
docid
);
if
(
!
i
)
i
=
CMP_NUM
(((
FTB_WORD
*
)
b
)
->
ndepth
,((
FTB_WORD
*
)
a
)
->
ndepth
);
i
=
CMP_NUM
(
b
->
ndepth
,
a
->
ndepth
);
if
(
!
i
)
i
=
_mi_compare_text
(
default_charset_info
,
b
->
word
+
1
,
b
->
len
-
1
,
a
->
word
+
1
,
a
->
len
-
1
,
0
);
return
i
;
}
...
...
@@ -130,6 +134,7 @@ void _ftb_parse_query(FTB *ftb, byte **start, byte *end,
ftbw
->
word
[
0
]
=
w
.
len
;
if
(
ftbw
->
yesno
>
0
)
up
->
ythresh
++
;
queue_insert
(
&
ftb
->
queue
,
(
byte
*
)
ftbw
);
ftb
->
with_scan
|=
ftbw
->
trunc
;
break
;
case
2
:
/* left bracket */
ftbe
=
(
FTB_EXPR
*
)
alloc_root
(
&
ftb
->
mem_root
,
sizeof
(
FTB_EXPR
));
...
...
@@ -207,6 +212,7 @@ FT_INFO * ft_init_boolean_search(MI_INFO *info, uint keynr, byte *query,
ftb
->
state
=
UNINITIALIZED
;
ftb
->
info
=
info
;
ftb
->
keynr
=
keynr
;
ftb
->
with_scan
=
0
;
init_alloc_root
(
&
ftb
->
mem_root
,
1024
,
1024
);
...
...
@@ -215,7 +221,7 @@ FT_INFO * ft_init_boolean_search(MI_INFO *info, uint keynr, byte *query,
*/
res
=
ftb
->
queue
.
max_elements
=
query_len
/
(
ft_min_word_len
+
1
);
ftb
->
queue
.
root
=
(
byte
**
)
alloc_root
(
&
ftb
->
mem_root
,
(
res
+
1
)
*
sizeof
(
void
*
));
reinit_queue
(
&
ftb
->
queue
,
res
,
0
,
0
,
FTB_WORD_cmp
,
ftb
);
reinit_queue
(
&
ftb
->
queue
,
res
,
0
,
0
,
(
int
(
*
)(
void
*
,
byte
*
,
byte
*
))
FTB_WORD_cmp
,
ftb
);
ftbe
=
(
FTB_EXPR
*
)
alloc_root
(
&
ftb
->
mem_root
,
sizeof
(
FTB_EXPR
));
ftbe
->
weight
=
1
;
ftbe
->
yesno
=
ftbe
->
nos
=
1
;
...
...
mysql-test/r/fulltext.result
View file @
2d9d1407
...
...
@@ -48,7 +48,14 @@ Full-text search in MySQL implements vector space model
select * from t1 where MATCH(a,b) AGAINST("+search -(support vector)" IN BOOLEAN MODE);
a b
Function MATCH ... AGAINST() is used to do a search
select *, MATCH(a,b) AGAINST("support collections" IN BOOLEAN MODE) as x from t1;
select *, MATCH(a,b) AGAINST("support collections" IN BOOLEAN MODE) as x from t1;
a b x
MySQL has now support for full-text search 1
Full-text indexes are called collections 1
Only MyISAM tables support collections 2
Function MATCH ... AGAINST() is used to do a search 0
Full-text search in MySQL implements vector space model 0
select *, MATCH(a,b) AGAINST("collections support" IN BOOLEAN MODE) as x from t1;
a b x
MySQL has now support for full-text search 1
Full-text indexes are called collections 1
...
...
mysql-test/t/fulltext.test
View file @
2d9d1407
...
...
@@ -27,7 +27,8 @@ select * from t1 where MATCH(a,b) AGAINST("+support +collections" IN BOOLEAN MOD
select
*
from
t1
where
MATCH
(
a
,
b
)
AGAINST
(
"+search"
IN
BOOLEAN
MODE
);
select
*
from
t1
where
MATCH
(
a
,
b
)
AGAINST
(
"+search +(support vector)"
IN
BOOLEAN
MODE
);
select
*
from
t1
where
MATCH
(
a
,
b
)
AGAINST
(
"+search -(support vector)"
IN
BOOLEAN
MODE
);
select
*
,
MATCH
(
a
,
b
)
AGAINST
(
"support collections"
IN
BOOLEAN
MODE
)
as
x
from
t1
;
select
*
,
MATCH
(
a
,
b
)
AGAINST
(
"support collections"
IN
BOOLEAN
MODE
)
as
x
from
t1
;
select
*
,
MATCH
(
a
,
b
)
AGAINST
(
"collections support"
IN
BOOLEAN
MODE
)
as
x
from
t1
;
# boolean w/o index:
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment