js-search icon indicating copy to clipboard operation
js-search copied to clipboard

Search results no longer include delimiter pipe

Open r0ckarong opened this issue 7 years ago • 7 comments

My page titles are build like

Product Version | Section | Topic

Until some recent change which I can not fathom the search result would look like that. Now the search result is only "Topic".

I'm trying to find out if your indexer does something different.

My implementation looks like this, pretty much the reference from your instructions:

Script insertion in the actual page template

  <!-- JS-Search -->
  <script src="<%= File.join(javascripts_path, "jssearch.js") %>" /></script>
  <script src="<%= File.join(javascripts_path, "jssearch.index.js") %>" /></script>

  <script type="text/javascript">
    $(document).on("keyup", "#searchbox", function() {
      var result = jssearch.search($(this).val());

      $('#query').html(jssearch.queryWords.join(' '));

      $('#results').html('');
      var i = 0;
      result.forEach(function(item) {
        if (i++ > 20) {
          return;
        }

        var div = $('#results');

        var version = "<%= version %>"
        var location = window.location.href;
        var pos = location.substr(0, location.search(version));
        var oerl = item.file.url;
        var clean = oerl.substr(2, oerl.length)

        div.html(div.html() + '<li>' + '<a href="' + pos + version + clean + '">' + item.file.title + '</a>' + '</li>');
      });
    });
  </script>

I've also updated to 0.9.3 and I see the same behavior.

r0ckarong avatar May 24 '17 08:05 r0ckarong

Until some recent change which I can not fathom the search result would look like that.

there have not been significant changes to this package since 2014, are you sure its a problem with the code in this package?

cebe avatar May 24 '17 22:05 cebe

That is what I'm trying to debug. Suddenly the titles recorded into jssearch index no longer contain the longer notation with the pipes. Where does the indexer grab the title from and how is it processed?

r0ckarong avatar May 28 '17 12:05 r0ckarong

https://github.com/cebe/js-search/blob/3756a8b3387f3f7e5c778b964ec681dcf110b098/lib/Indexer.php#L57-L71

cebe avatar May 29 '17 08:05 cebe

have you added <h1> tags that were not present before?

cebe avatar May 29 '17 09:05 cebe

I did actually convert a previously h2 into an h1. So it takes the text from the first h1 it finds over the HTML <title> tag from what I can read? This would explain it.

r0ckarong avatar May 29 '17 09:05 r0ckarong

Ok yeah that was the cause. Ideally could you add an option to pass with the script that allows me to select if the first h1 or the actual

tag is used?

r0ckarong avatar May 29 '17 09:05 r0ckarong

I can add it but I do not have time for it right now. If you want to have it earlier I am happy to accept a pull request.

cebe avatar May 29 '17 09:05 cebe