2016-06-20 14 views
0

私はSolrを初めて使い、 "空白を整える"と "ハッシュ記号を無視する"という問題に直面しています。例えば空白を切り捨て、ハッシュ記号を無視する

、私は私のデータベースに結果を以下している場合:「RedBlue」の検索は、私が「レッド・ブルー」のために上記のが、もし検索のすべてを取得する場合

"Red Blue abc", 
"abc RedBlue", 
"Red abc Blue", 
"Red abc", 
"Blue abc" 

は今、私がすることができません上記のすべての結果を取得します。いくつかは見逃されている。ハッシュ記号と同じ問題です。「Red#Blue」を検索すると、同じ問題に直面しています。

ありがとうございました。

+0

空白とハッシュタグを 'str_replace'または' preg_replace'で取り除くことはできますが、それはユーザーが期待するものとは異なるコンテンツを与えるかもしれない、いいえ?例えば、「前」と「前」とを区別することは不可能である。 – chris85

答えて

0

あなたは、MySQLからFULLTEXT機能を使用することができます。

CREATE FULLTEXT INDEX text_index ON your_table(text_field); 
  • 使用全文検索の声明:

    mysql> SELECT * FROM your_table WHERE MATCH(text_field) 
         AGAINST('Red Blue'); 
    +--------------+ 
    | text_field | 
    +--------------+ 
    | Red Blue abc | 
    | Red abc Blue | 
    | Red abc  | 
    | Blue abc  | 
    +--------------+ 
    4 rows in set (0,00 sec) 
    
    1. があなたのテーブルにインデックスを作成します。

      ハッシュを置き換える必要がありますクエリを実行する前にignしてください。

    0

    あなたの例は、索引や検索の際に一緒になったり、別の単語になることが多いようです。

    Solrでは、これは解析中にWordDelimiterFilterをアナライザチェーンに含めることで処理されます。 Solr Startでthe links to the examples that use itが表示されます。 Solrに同梱されているサンプルもそのフィルタを使用していますので、チュートリアルを必ずお読みください。

    関連する問題