Skip to content

Commit 697362e

Browse files
committed
Merge branch 'develop'
2 parents 9529219 + cae7b86 commit 697362e

30 files changed

+688
-85
lines changed

categories/src/Model/Bridge/Category.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,9 @@ public function getId()
7777
*/
7878
public function getUrl()
7979
{
80-
return $this->magentoCategory->getUrl();
80+
$category = $this->magentoCategory;
81+
$category->getUrlInstance()->setScope($this->getStoreId());
82+
return $category->getUrl();
8183
}
8284

8385
/**

categories/src/etc/adminhtml/system.xml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,15 @@
4545
<field id="max_number_category_suggestions">
4646
<comment>0 = don't show&lt;br /&gt;Attention: If &lt;i&gt;Category Indexing&lt;/i&gt; is active, the suggestions will be better, but it will affect the performance of the autosuggest!</comment>
4747
</field>
48+
<field id="fuzzy_is_active_for_categories" translate="label" sortOrder="55" type="select" showInDefault="1" showInWebsite="1" showInStore="1">
49+
<label>Fuzzy Search is active for Categories</label>
50+
<source_model>Magento\Config\Model\Config\Source\Yesno</source_model>
51+
</field>
52+
<field id="fuzzy_sensitivity_for_categories" translate="label,comment" sortOrder="56" type="text" showInDefault="1" showInWebsite="1" showInStore="1">
53+
<label>Sensitivity for Categories</label>
54+
<comment>Value between 0 and 1. Smaller values mean more fuzzy search results.</comment>
55+
<validate>validate-number validate-zero-or-greater</validate>
56+
</field>
4857
</group>
4958
</section>
5059
</system>

categories/src/etc/config.xml

Lines changed: 20 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,22 @@
11
<?xml version="1.0"?>
2-
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Store:etc/config.xsd">
3-
<default>
4-
<integernet_solr>
5-
<category>
6-
<is_active>0</is_active>
7-
<filter_position>1</filter_position>
8-
<is_indexer_active>0</is_indexer_active>
9-
<use_in_search_results>1</use_in_search_results>
10-
<max_number_results>10</max_number_results>
11-
<fuzzy_is_active>1</fuzzy_is_active>
12-
<fuzzy_sensitivity>0.75</fuzzy_sensitivity>
13-
<show_outofstock>1</show_outofstock>
14-
</category>
15-
</integernet_solr>
16-
</default>
2+
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3+
xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Store:etc/config.xsd">
4+
<default>
5+
<integernet_solr>
6+
<category>
7+
<is_active>0</is_active>
8+
<filter_position>1</filter_position>
9+
<is_indexer_active>0</is_indexer_active>
10+
<use_in_search_results>1</use_in_search_results>
11+
<max_number_results>10</max_number_results>
12+
<fuzzy_is_active>1</fuzzy_is_active>
13+
<fuzzy_sensitivity>0.75</fuzzy_sensitivity>
14+
<show_outofstock>1</show_outofstock>
15+
</category>
16+
<autosuggest>
17+
<fuzzy_is_active_for_categories>1</fuzzy_is_active_for_categories>
18+
<fuzzy_sensitivity_for_categories>0.8</fuzzy_sensitivity_for_categories>
19+
</autosuggest>
20+
</integernet_solr>
21+
</default>
1722
</config>

composer.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
"description": "",
44
"require": {
55
"php": "~5.6.0|^7.0",
6-
"integer-net/solr-base": "^3.0.0",
7-
"integer-net/solr-pro": "^1.0.0",
6+
"integer-net/solr-base": "^3.1.0",
7+
"integer-net/solr-pro": "^1.2.1",
88
"integer-net/solr-magento2-autosuggest" : "^1.0.0",
99
"magento/module-catalog": "^101.0.0",
1010
"magento/module-search": "^100.1.0"

doc/manual.md

Lines changed: 38 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ Features
3030
- Multiple selection of filter values
3131
- Search results from Solr for better speed and quality
3232
- Prerendered product HTML blocks for faster rendering (optional)
33-
- Configurable the price filter steps
33+
- Configurable price filter steps
3434
- Automatic update of Solr index on create/edit/delete of products
3535

3636
#### Modification of search results
@@ -45,7 +45,7 @@ Features
4545

4646
Requirements
4747
------------
48-
- **Magento Community Edition** 2.1.x
48+
- **Magento Community Edition** 2.1.x and 2.2.x
4949
- **Solr** 4.x to 6.x
5050
- **PHP** 5.6 to 7.0
5151

@@ -268,11 +268,25 @@ You can choose between *AND* and *OR*. The search operator is used if there is m
268268
When using *OR*, results which match only one of the search words will be displayed.
269269
In most cases, *AND* is the better setting.
270270

271+
#### Sorting of Filter Options
272+
273+
By default, Magento uses the attribute options' positions to sort them in the layered navigation. If you prefer to sort the available filter values in a different way, you can switch to "Alphabet" for an alphabetic order or "Result Count" to put filter values with many results at the top of the list in the filter.
274+
275+
Please note that this configuration applies to filters on both search results pages and category pages.
276+
271277
#### Solr Priority of Category Names
272278

273279
Configure with which priority category names are handled in the Solr index. For example, if the search term "black shirts" should primarily return those products as search results which are contained in a category named "shirts", you might want to enter a higher value than 1.
274280
The default value is 1. If you enter a higher value, category names have a higher priority in the Solr index.
275281

282+
#### Show products which are out of stock
283+
284+
In the default setting, even products which are not in stock are shown on the search results page. To keep your search results clear from items which are out of stock, select "No".
285+
286+
#### Solr Priority Multiplier for Products being out of Stock
287+
288+
This is a factor which manipulates the ranking of search results depending on the product's stock status. If you prefer to have items which are out of stock in the list of search results, select a value that is greater than 0. To put sold out products at the very bottom of the search results, enter "0.1". The value "1" means that the stock status has no impact on the search results ranking.
289+
276290
<!-- #### Position of Filters
277291
278292
Filters can be displayed either in the left column next to the list of products or above the products. The latter is recommended if you have a rather narrow template.
@@ -317,14 +331,14 @@ If you activate this setting, Solr will be used to displayed products on categor
317331

318332
When you activate this setting, categories that match the search term will be displayed in the autosuggest box. To finetune suggested categories, you can exclude single categories from being indexed.
319333

320-
#### Maximum number of results
321-
322-
If search terms return too many categories as search results, you can limit the amount of displayed category results. Enter any positive value in whole numbers.
323-
324334
#### Display categories as search results
325335

326336
Here you can decide if categories, which match the search term, should be displayed in the search results as a new tab - one tab for matching products, one tab for matching categories.
327337

338+
#### Maximum number of results
339+
340+
If search terms return too many categories as search results, you can limit the amount of displayed category results. Enter any positive value in whole numbers.
341+
328342
#### Fuzzy Search is active
329343

330344
Like the fuzzy search for autosuggest and product search, you are able to define if fuzzy category matches are to be displayed in the category search results tab.
@@ -333,6 +347,10 @@ Like the fuzzy search for autosuggest and product search, you are able to define
333347

334348
Fuzzy search for category pages is set to "yes", this field is used to finetune the sensitivity of fuzzy search results. Enter any value between 0 and 1. Smaller values, e.g. 0.5 lead to more fuzzy results.
335349

350+
#### Show products which are out of stock
351+
352+
In the default setting, products which are not in stock are shown in the product list on category pages. To remove sold out products from category pages, select "No".
353+
336354
<!-- #### Position of Filter
337355
338356
Independent of the filters' position on search result pages, you can choose where to display filters on category pages: either in the left column next to the products or above the products. This is a default value which can be overwritten by the category's configuration.
@@ -370,10 +388,18 @@ The number of categories which will be displayed in the autosuggest window. If "
370388
371389
The number of CMS pages which will be displayed in the autosuggest window. This feature only works, if "Use Solr to index cms pages" is set to "Yes".-->
372390

373-
#### Show complete category path
391+
#### Fuzzy Search is active for Categories
392+
393+
You can set here separately for category suggestions if these should show fuzzy matches, too. If your category names are very specific (e.g. with numbers used for sizes), it might be better to turn off fuzzy suggestions for categories.
394+
395+
#### Sensitivity for Categories
396+
397+
If fuzzy search is active for categories in autosuggest, you can finetune the sensitivity of the fuzzy search here. A bigger value leads to less fuzzy results.
398+
399+
<!-- #### Show complete category path
374400
375401
If this setting is active, not only the category names will be displayed, but their parent categories as a path as well.
376-
For example, this will be "Electronics > Cameras > Accessories" instead of "Accessories".
402+
For example, this will be "Electronics > Cameras > Accessories" instead of "Accessories".-->
377403

378404
#### Type of Category Links
379405

@@ -387,6 +413,10 @@ You can enter an arbitrary number of attributes here which will be displayed in
387413

388414
Only attributes with the property "Use In Search Results Layered Navigation" are selectable.
389415

416+
#### Show products which are out of stock
417+
418+
In the default setting, products which are not in stock are hidden from search suggestions. To show sold out products in the autosuggest box, select "Yes".
419+
390420
<!--### SEO
391421
392422
![SEO](http://www.integer-net.de/download/solr/integernet-solr-config-seo-en.png)

doc/manual_de.md

Lines changed: 37 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ Features
4545

4646
Systemvoraussetzungen
4747
------------
48-
- **Magento Community Edition** 2.1.x
48+
- **Magento Community Edition** 2.1.x und 2.2.x
4949
- **Solr** 4.x bis 6.x
5050
- **PHP** 5.6 bis 7.0
5151

@@ -279,11 +279,25 @@ Gibt es für Filter sehr viele Filteroptionen, kann aus Gründen der Übersichtl
279279
280280
Normalerweise werden die Filteroptionen nach der Anzahl der Treffer sortiert. In einigen Fällen ist es sinnvoll, sie stattdessen alphabetisch zu sortieren. Die alphabetische Sortierung kann über dieses Feld aktiviert werden.-->
281281

282+
#### Sortierung von Filteroptionen
283+
284+
In Magento werden die Filterwerte standardmäßig anhand der Position in der Attributkonfiguration auch im Frontend in der Filternavigation angezeigt. Sie können alternativ alphabetisch oder anhand der Trefferanzahl absteigend sortiert werden.
285+
286+
Bitte beachten Sie, dass diese Konfiguration sowohl für die Filternavigation auf Suchergebnisseiten als auch auf Kategorieseiten gilt.
287+
282288
#### Solr-Priorität von Kategorienamen
283289

284290
Hier können Sie einstellen, mit welcher Priorität Kategorienamen im Solr-Index verarbeitet werden. Ein Beispiel: Wenn der Suchbegriff "schwarze Shirts" hauptsächlich solche Artikel im Suchergebnis anzeigen soll, die in der Kategorie "Shirts" enthalten sind, tragen Sie hier einen höheren Wert ein.
285291
Der Standardwert ist 1. Wenn Sie einen höheren Wert eintragen, werden Kategorienamen im Solr-Index stärker beachtet.
286292

293+
#### Produkte anzeigen, die nicht auf Lager sind
294+
295+
Als Standardeinstellung werden auch Produkte, die nicht auf Lager sind, in den Suchergebnissen angezeigt. Um ausverkaufte Produkte auf den Suchergebnisseiten auszublenden, wählen Sie "Nein".
296+
297+
#### Solr-Prioritäts-Multiplikator für ausverkaufte Produkte
298+
299+
Dieser Faktor beeinflusst, wie sich der Lagerstatus des Produkts auf das Ranking in den Suchergebnissen auswirkt. Wenn Sie es bevorzugen, ausverkaufte Produkte in der Suchergebnisliste anzuzeigen, wählen Sie einen Wert, der größer als 0 ist. Um ausverkaufte Produkte ans Ende der Ergebnisliste zu setzen, geben Sie "0.1" ein. Der Wert "1" bedeutet, dass der Lagerstatus keinen Einfluss auf das Suchergebnis-Ranking hat.
300+
287301
#### Größe der Preis-Schritte
288302

289303
Diese Einstellung ist für den Preisfilter wichtig. Hier kann man einstellen, in welchen Schritten die einzelnen Intervalle definiert sein sollen. So führt z. B. *10* zu den Intervallen *0,00-10,00*, *10,00-20,00*, *20,00-30,00* usw.
@@ -319,14 +333,14 @@ Wird diese Funktion aktiviert, ist danach eine Reindizierung des Solr Suchindex
319333

320334
Wenn diese Funktion aktiviert ist, werden Kategorien in den Suchvorschlägen angezeigt, deren Namen oder Beschreibungen zum Suchbegriff passen. Für eine feinere Einstellung der vorgeschlagenen Kategorien können Sie einzelne Kategorien vom Index ausschließen.
321335

322-
#### Maximale Anzahl der Suchergebnisse
323-
324-
Wenn ein Suchbegriff zu viele Kategorien als Suchergebnis angeibt, kann hier die Anzahl der anzuzeigenden Treffer bestimmt werden. Geben Sie dafür eine ganze Zahl ein.
325-
326336
#### Kategorien als Suchergebnisse anzeigen
327337

328338
Hier können Sie entscheiden, ob Kategorien, die ein Treffer für den Suchbegriff sind, in den Suchergebnissen als Treffer angezeigt werden sollen. Sie werden in einem separaten Tab angezeigt: ein Tab für passende Produkte, ein Tab für passende Kategorien.
329339

340+
#### Maximale Anzahl der Suchergebnisse
341+
342+
Wenn ein Suchbegriff zu viele Kategorien als Suchergebnis angeibt, kann hier die Anzahl der anzuzeigenden Treffer bestimmt werden. Geben Sie dafür eine ganze Zahl ein.
343+
330344
#### Unscharfe Suche aktivieren
331345

332346
Wie die unscharfe Suche bei den Suchvorschlägen und der Produktsuche können Sie auch unscharfe Treffer für Kategorien zulassen. Wählen Sie dafür den Wert "Ja".
@@ -335,6 +349,10 @@ Wie die unscharfe Suche bei den Suchvorschlägen und der Produktsuche können Si
335349

336350
Wenn die unscharfe Suche für Kategorieseiten aktiviert ist, können Sie in diesem Feld die Feinjustierung der unscharfen Suche vornehmen. Tragen Sie einen Wert zwischen 0 und 1 ein. Kleinere Werte, z.B. 0.5, führen zu mehr unscharfen Ergebnissen.
337351

352+
#### Produkte anzeigen, die nicht auf Lager sind
353+
354+
Als Standardeinstellung werden auch Produkte, die nicht auf Lager sind, in den Produktlisten der Kategorieseiten angezeigt. Um ausverkaufte Produkte auf den Kategorieseiten auszublenden, wählen Sie "Nein".
355+
338356
<!-- ### CMS
339357
340358
![CMS-Seiten](http://www.integer-net.com/download/solr/integernet-solr-config-CMS-de.png)
@@ -369,9 +387,17 @@ Die Anzahl der in der Suchvorschau angezeigten Kategorien. Wenn die Funktion "So
369387
370388
Die Anzahl der in der Suchvorschau angezeigten CMS-Seiten. Diese Vorschläge können nur dann angezeigt werden, wenn für die Funktion "Solr für die Indizierung von CMS-Seiten verwenden" der Wert auf "Ja" gesetzt ist.-->
371389

372-
#### Kompletten Kategorie-Pfad anzeigen
390+
#### Unscharfe Suche ist aktiv für Kategorien
391+
392+
Sie können hier einstellen, ob Kategorievorschläge auch unscharfe Treffer anzeigen sollen. Bei sehr spezifischen Kategorienamen (z. B. mit Ziffern für Größen), kann es besser sein, die unscharfen Kategorievorschläge zu deaktivieren.
373393

374-
Ist diese Einstellung aktiv, werden nicht nur die Kategorienamen angezeigt, sondern auch deren Elternkategorien als Pfad, beispielsweise "Electronics > Cameras > Accessories" statt nur "Accessoires".
394+
#### Sensibilität für Kategorien
395+
396+
Ist die unscharfe Suche für Kategorien in den Suchvorschlägen aktiviert, lässt sich hier die Sensibilität der unscharfen Ergebnisse anpassen. Je größer der Wert, desto exakter sind die Ergebnisse.
397+
398+
<!-- #### Kompletten Kategorie-Pfad anzeigen
399+
400+
Ist diese Einstellung aktiv, werden nicht nur die Kategorienamen angezeigt, sondern auch deren Elternkategorien als Pfad, beispielsweise "Electronics > Cameras > Accessories" statt nur "Accessoires".-->
375401

376402
#### Typ von Kategorie-Links
377403

@@ -384,6 +410,10 @@ Hier geht es um den Link, der hinter den angezeigten Kategorien steht. Die Optio
384410
Hier können Sie beliebig viele Attribute eintragen, die in der Suchvorschau mit den am häufigsten vorkommenden Optionen dargestellt werden. Sie können jeweils das Attribut auswählen und die Anzahl der angezeigten Optionen definieren. Außerdem können Sie die Reihenfolge der Attribute bestimmen - das Attribut mit dem kleinsten Wert bei "Sortierung" wird zuoberst angezeigt.
385411
Es stehen nur Attribute zur Auswahl, die die Eigenschaft "Filternavigation auf Suchergebnisseiten verwenden" haben.
386412

413+
#### Produkte anzeigen, die nicht auf Lager sind
414+
415+
Als Standardeinstellung werden ausschließlich Produkte, die auf Lager sind, in den Suchvorschlägen angezeigt. Um auch ausverkaufte Produkte in der Suchvorschlagsbox anzuzeigen, wählen Sie "Ja".
416+
387417
<!-- ### SEO
388418
389419
![SEO](http://www.integer-net.de/download/solr/integernet-solr-config-seo-de.png)

doc/release-notes.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,15 @@ IntegerNet_Solr for Magento 2
22
===============
33
Release Notes
44

5+
Version 1.4.0 (Oct 11, 2017)
6+
---------------
7+
8+
- Add configuration to enable/disable fuzzy for categories search in autosuggest
9+
- Add configuration to choose sorting of filter options (by alphabet / by number results / by admin sorting)
10+
- Fix filters for swatches attributes
11+
- Fix URLs in autosuggest for multiple store views
12+
- Fix display of category suggestions in case of more than one category with the same name
13+
514
Version 1.3.2 (Aug 23, 2017)
615
---------------
716

main/src/Model/Bridge/Config.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,12 +51,10 @@ class Config implements ConfigInterface
5151
* @var DirectoryList
5252
*/
5353
private $directoryList;
54-
5554
/**
5655
* @var ScopeConfigInterface
5756
*/
5857
private $scopeConfig;
59-
6058
/**
6159
* @var GeneralConfig
6260
*/
@@ -211,7 +209,9 @@ public function getAutosuggestConfig()
211209
$this->_getConfigFlag($prefix . 'show_complete_category_path'),
212210
$this->_getConfigFlag($prefix . 'category_link_type'),
213211
(array)@unserialize($this->_getConfig($prefix . 'attribute_filter_suggestions')),
214-
$this->_getConfigFlag($prefix . 'show_outofstock')
212+
$this->_getConfigFlag($prefix . 'show_outofstock'),
213+
$this->_getConfigFlag($prefix . 'fuzzy_is_active_for_categories'),
214+
(float)$this->_getConfig($prefix . 'fuzzy_sensitivity_for_categories')
215215
);
216216
}
217217
return $this->autosuggest;

main/src/Model/Bridge/Product.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
use Magento\CatalogInventory\Api\StockRegistryInterface;
2020
use Magento\Framework\App\Config\ScopeConfigInterface;
2121
use Magento\Framework\App\ObjectManager;
22-
use Magento\Framework\Event\ManagerInterface;
22+
use Magento\Framework\Event\ManagerInterface as EventManagerInterface;
2323

2424
class Product implements ProductInterface
2525
{
@@ -41,7 +41,7 @@ class Product implements ProductInterface
4141
*/
4242
private $attributeRepository;
4343
/**
44-
* @var ManagerInterface
44+
* @var EventManagerInterface
4545
*/
4646
private $eventManager;
4747

@@ -65,15 +65,15 @@ class Product implements ProductInterface
6565
*
6666
* @param MagentoProduct $magentoProduct
6767
* @param AttributeRepository $attributeRepository
68-
* @param ManagerInterface $eventManager
68+
* @param EventManagerInterface $eventManager
6969
* @param StockRegistryInterface $stockRegistry
7070
* @param ScopeConfigInterface $scopeConfig
7171
* @param int|null $storeId store id for store specific values (null for default)
7272
*/
7373
public function __construct(
7474
MagentoProduct $magentoProduct,
7575
AttributeRepository $attributeRepository,
76-
ManagerInterface $eventManager,
76+
EventManagerInterface $eventManager,
7777
StockRegistryInterface $stockRegistry,
7878
ScopeConfigInterface $scopeConfig,
7979
$storeId = null

0 commit comments

Comments
 (0)