Skip to content

Commit ac7adab

Browse files
committed
[Breaking] Hash values of label indexes
1 parent 799075b commit ac7adab

2 files changed

Lines changed: 22 additions & 22 deletions

File tree

src/MongoDB/MongoDBDocumentBuilder.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ public function cleanTextForSearch( $text ) {
140140
$text = mb_strtolower( $text, 'UTF-8' ); //TODO: said to be very slow
141141
$text = trim( $text );
142142

143-
return new MongoBinData( $text, MongoBinData::GENERIC );
143+
return new MongoBinData( md5( $text, true ), MongoBinData::GENERIC );
144144
}
145145

146146
private function buildSearchClaimsForEntity( array $serialization ) {
@@ -198,11 +198,11 @@ private function buildSearchedDataValue( array $dataValue ) {
198198
* @return string
199199
*/
200200
public function buildSearchedStringValue( $value ) {
201-
if( strlen( $value ) <= 128 ) {
201+
if( strlen( $value ) <= 32 ) {
202202
return $value;
203203
}
204204

205-
return hash( 'md5', $value );
205+
return md5( $value );
206206
}
207207

208208
private function buildSearchedEntityIdValue( array $value ) {

tests/unit/MongoDB/MongoDBDocumentBuilderTest.php

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,9 @@ public function testBuildDocumentForEntity() {
2727
$item = new Item(
2828
new ItemId( 'Q1' ),
2929
new Fingerprint(
30-
new TermList( [ new Term( 'en', 'foo' ) ] ),
30+
new TermList( [ new Term( 'en', 'foo ' ) ] ),
3131
new TermList( [ new Term( 'en', 'bar' ) ] ),
32-
new AliasGroupList( [ new AliasGroup( 'fr', [ 'bÊz', 'bat' ] ) ] )
32+
new AliasGroupList( [ new AliasGroup( 'fr', [ 'BAZée', 'bat' ] ) ] )
3333
)
3434
);
3535

@@ -41,14 +41,14 @@ public function testBuildDocumentForEntity() {
4141
'type' => 'item',
4242
'id' => 'Q1',
4343
'labels' => [
44-
'en' => [ 'language' => 'en', 'value' => 'foo' ]
44+
'en' => [ 'language' => 'en', 'value' => 'foo ' ]
4545
],
4646
'descriptions' => [
4747
'en' => [ 'language' => 'en', 'value' => 'bar' ],
4848
],
4949
'aliases' => [
5050
'fr' => [
51-
[ 'language' => 'fr', 'value' => 'baz' ],
51+
[ 'language' => 'fr', 'value' => 'BAZée' ],
5252
[ 'language' => 'fr', 'value' => 'bat' ]
5353
]
5454
],
@@ -135,14 +135,14 @@ public function testBuildDocumentForEntity() {
135135
'type' => 'item',
136136
'id' => 'Q1',
137137
'labels' => [
138-
'en' => [ 'language' => 'en', 'value' => 'foo' ],
138+
'en' => [ 'language' => 'en', 'value' => 'foo ' ],
139139
],
140140
'descriptions' => [
141141
'en' => [ 'language' => 'en', 'value' => 'bar' ],
142142
],
143143
'aliases' => [
144144
'fr' => [
145-
[ 'language' => 'fr', 'value' => 'baz' ],
145+
[ 'language' => 'fr', 'value' => 'BAZée' ],
146146
[ 'language' => 'fr', 'value' => 'bat' ]
147147
]
148148
],
@@ -213,10 +213,10 @@ public function testBuildDocumentForEntity() {
213213
]
214214
],
215215
'sterms' => [
216-
'en' => [ new MongoBinData( 'foo', MongoBinData::GENERIC ) ],
216+
'en' => [ new MongoBinData( md5( 'foo', true ), MongoBinData::GENERIC ) ],
217217
'fr' => [
218-
new MongoBinData( 'baz', MongoBinData::GENERIC ),
219-
new MongoBinData( 'bat', MongoBinData::GENERIC )
218+
new MongoBinData( md5( 'bazée', true ), MongoBinData::GENERIC ),
219+
new MongoBinData( md5( 'bat', true ), MongoBinData::GENERIC )
220220
]
221221
],
222222
'sclaims' => [
@@ -250,15 +250,15 @@ public function testBuildDocumentForEntityWithLanguageOption() {
250250
'type' => 'item',
251251
'id' => 'Q1',
252252
'labels' => [
253-
'en' => [ 'language' => 'en', 'value' => 'foo' ],
253+
'en' => [ 'language' => 'en', 'value' => 'foo ' ],
254254
'de' => [ 'language' => 'en', 'value' => 'bar' ],
255255
],
256256
'descriptions' => [
257257
'en' => [ 'language' => 'en', 'value' => 'bar' ],
258258
],
259259
'aliases' => [
260260
'fr' => [
261-
[ 'language' => 'fr', 'value' => 'baz' ],
261+
[ 'language' => 'fr', 'value' => 'BAzée' ],
262262
[ 'language' => 'fr', 'value' => 'bat' ]
263263
],
264264
'it' => [ [ 'language' => 'it', 'value' => 'goo' ] ]
@@ -280,22 +280,22 @@ public function testBuildDocumentForEntityWithLanguageOption() {
280280
'id' => 'Q1',
281281
'type' => 'item',
282282
'labels' => [
283-
'en' => [ 'language' => 'en', 'value' => 'foo' ],
283+
'en' => [ 'language' => 'en', 'value' => 'foo ' ],
284284
],
285285
'descriptions' => [
286286
'en' => [ 'language' => 'en', 'value' => 'bar' ],
287287
],
288288
'aliases' => [
289289
'fr' => [
290-
[ 'language' => 'fr', 'value' => 'baz' ],
290+
[ 'language' => 'fr', 'value' => 'BAzée' ],
291291
[ 'language' => 'fr', 'value' => 'bat' ]
292292
]
293293
],
294294
'sterms' => [
295-
'en' => [ new MongoBinData( 'foo', MongoBinData::GENERIC ) ],
295+
'en' => [ new MongoBinData( md5( 'foo', true ), MongoBinData::GENERIC ) ],
296296
'fr' => [
297-
new MongoBinData( 'baz', MongoBinData::GENERIC ),
298-
new MongoBinData( 'bat', MongoBinData::GENERIC )
297+
new MongoBinData( md5( 'bazée', true ), MongoBinData::GENERIC ),
298+
new MongoBinData( md5( 'bat', true ), MongoBinData::GENERIC )
299299
]
300300
],
301301
'sclaims' => []
@@ -373,15 +373,15 @@ public function cleanTextForSearchProvider() {
373373
return [
374374
[
375375
'test',
376-
new MongoBinData( 'test', MongoBinData::GENERIC )
376+
new MongoBinData( md5( 'test', true ), MongoBinData::GENERIC )
377377
],
378378
[
379379
'TODO',
380-
new MongoBinData( 'todo', MongoBinData::GENERIC )
380+
new MongoBinData( md5( 'todo', true ), MongoBinData::GENERIC )
381381
],
382382
[
383383
'Être',
384-
new MongoBinData( 'être', MongoBinData::GENERIC )
384+
new MongoBinData( md5( 'être', true ), MongoBinData::GENERIC )
385385
],
386386
];
387387
}

0 commit comments

Comments
 (0)