バージョン選択

フォーラム

メニュー

オンライン状況

57 人のユーザが現在オンラインです。 (47 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 57
もっと...

サイト内検索

質問 > 管理機能 > 商品のキーワード検索に使用されているファイルはどれでしょうか

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
FXSTCevo
投稿日時: 2020/8/3 15:37
対応状況: −−−
半人前
登録日: 2020/1/7
居住地:
投稿: 15
商品のキーワード検索に使用されているファイルはどれでしょうか
[EC-CUBE] EC-CUBE4.0.3
[レンタルサーバ] さくらインターネット・スタンダード
[OS] Windows10 64bit
[PHP] 7.3.12 (CGI)
[データベース] MySQL5.7
[WEBサーバ] FreeBSD nginx + Apache2.4系
[ブラウザ] Google Chrome バージョン: 79.0.3945.88(Official Build)
[導入プラグインの有無] メールテンプレート登録プラグイン、関連商品プラグイン等
[カスタマイズの有無] https://a-zumi.net/eccube4-tag-search/の内容(半月程度異常なく稼働していました)


以前「商品検索の精度が著しく下がってしまいました」という内容で投稿させて頂いた者です。
https://xoops.ec-cube.net/modules/newbb/viewtopic.php?topic_id=24039&forum=10&post_id=98106#forumpost98106

フロント側でキーワードで商品を検索すると、そのキーワードを含む商品が例えば実際には30あるのに、検索結果としては5件しか出て来ない、というような不具合が出ています。

前回の投稿時にアドバイスを頂きましたが、結局自分では原因の特定も解決もできませんでした。

今回お聞きしたいのは、キーワードでの商品検索を行う際に、EC-CUBE内のどのファイルを使用しているのか(.phpのファイルなど)ということです。
ファイル名がわかれば以前のバックアップと現在のものを比較することができますので、解決に繋がるのではないかと思っています。

もしご存じの方がいらっしゃいましたらご教示頂ければ大変助かります。
宜しくお願い致します。
umebius
投稿日時: 2020/8/3 16:06
対応状況: −−−
登録日: 2016/7/22
居住地:
投稿: 2085
Re: 商品のキーワード検索に使用されているファイルはどれでしょうか
\Eccube\Repository\ProductRepositoryのgetQueryBuilderBySearchDataメソッドです。


カスタマイズは下記をそのまま導入されたということでしょうか?
https://a-zumi.net/eccube4-tag-search/

だとするとタグテーブルをinnerJoinしているのでタグが設定されていない商品は引っかからないのではないですかね。
引用:
// QueryBuilderに対してタグを検索対象するように設定
$builder->innerJoin("p.ProductTag", "pt");
foreach ($result as $tag) {
$builder->orWhere("pt.Tag = :Tag");
$builder->setParameter("Tag", $tag->getId());
}


また、上の書き方だとヒットしたタグが複数あっても1つしか条件に含まれないかもしれません。


----------------
EC-CUBEカスタマイズ・高速化・脆弱性対策・SEO ご相談ください。

2系・3系から4系へのバージョンアップ実績豊富

FXSTCevo
投稿日時: 2020/8/6 15:56
対応状況: −−−
半人前
登録日: 2020/1/7
居住地:
投稿: 15
Re: 商品のキーワード検索に使用されているファイルはどれでしょうか
umebius様、ご回答ありがとうございました。
ご教示頂いたProductRepository.phpは過去のバックアップと比較しても相違点がなく、検索精度低下の原因ではないことがわかりました。有難うございます。

また、カスタマイズにつきましては参考URLの通りにカスタム致しましたが、今回のトラブルを鑑み、この「タグを検索対象にする」というカスタマイズ自体をやめようということになりました。

現在\app\Customize\Repository 内にTagSearchCustomizer.phpが存在している状態ですが、このTagSearchCustomizer.phpをそのまま削除すると

Warning: include(/…/vendor/composer/../../app/Customize/Repository/TagSearchCustomizer.php): failed to open stream: No such file or directory in /…/vendor/composer/ClassLoader.php on line 444

Warning: include(): Failed opening '/…/vendor/composer/../../app/Customize/Repository/TagSearchCustomizer.php' for inclusion (include_path='.:/usr/local/php/7.3/lib/php') in /…/vendor/composer/ClassLoader.php on line 444

Fatal error: Uncaught Symfony\Component\Debug\Exception\ClassNotFoundException: Attempted to load class "TagSearchCustomizer" from namespace "Customize\Repository". Did you forget a "use" statement for another namespace? in /…/var/cache/prod/ContainerGi4to0l/EccubeProdProjectContainer.php:2920 Stack trace: #0 /…/var/cache/prod/ContainerGi4to0l/EccubeProdProjectContainer.php(3122): ContainerGi4to0l\EccubeProdProjectContainer->getQueriesService() #1 /…/var/cache/prod/ContainerGi4to0l/EccubeProdProjectContainer.php(3212): ContainerGi4to0l\EccubeProdProjectContainer->getProductRepositoryService() #2 /…/var/cache/prod/ContainerGi4to0l/EccubeProdProjectContainer.php(2887): ContainerGi4to0l\EccubeProdProjectContainer->getEccubeExtensionService() #3 /…/var/cache/prod/ContainerGi4to0l/EccubeProdProjectContainer.php(2962): ContainerGi4to0l\EccubeProdProjectContainer->getTwigServi in /…/var/cache/prod/ContainerGi4to0l/EccubeProdProjectContainer.php on line 2920

というようなエラーが出てしまいます。
削除するのに何か特別な手順が必要なのでしょうか・・・

重ねての質問で申し訳ありません。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,286名です
総投稿数は109,688件です

投稿数ランキング

1
seasoft
7365
2
468
3217
3
AMUAMU
2712
4
nanasess
2303
5
umebius
2085
6
yuh
1818
7
h_tanaka
1610
8
red
1567
9
mcontact
1240
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
796
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.