Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 3667498
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 19, 20262026-05-19T02:00:30+00:00 2026-05-19T02:00:30+00:00

I am looking for a way to use l2s to return ranked result based

  • 0

I am looking for a way to use l2s to return ranked result based on keywords.

I would like to take a keyword and be able to search the table for that keyword using .contains(). The trick that I haven’t been able to figure out is how to get a count of how many times that keyqord appears, and then .OrderByDescending() based on that count.

So if i had some thing like:

string keyword = "SomeKeyword";

IQueryable<Article> searchResults = from a in GenesisRepository.Article
                                    where a.Body.Contains(keyword)
                                    select a;

What is the best way to order searchResults based on the number of times keyword appears in a.Body?

Thanks for any help.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-19T02:00:30+00:00Added an answer on May 19, 2026 at 2:00 am

    try inserting order by a.Body.Split(' ').Count(w=>w == keyword). That should allow you to see that the concept works. However, I STRONGLY recommend that the final version include this as part of the select projection, possibly using a key-value pair, and order by the property name:

    string keyword = "SomeKeyword";
    
    //EDIT: restructured query to force the ordering to be done on the projection, 
    //not the source.
    IQueryable<Article> searchResults = (from a in GenesisRepository.Article
                                        where a.Body.Contains(keyword)
                                        select new KeyValuePair<int, Article>(
                                           a.Body.Split(' ').Count(w=>w == keyword), a))
                                        .OrderBy(kvp=>kvp.Key);
    

    The reason is performance; the Split().Count() method chain is linear-complexity, and will be evaluated for every comparison of two values, making the overall sort N^2logN complexity (slow).

    EDIT: Also, understand that a.Body.Contains(keyword) will not search by whole words, and so will return articles that contain “SomeKeywordLongerThanSearch” and “ThisIsSomeKeyword” as well as “SomeKeyword”. You can avoid this with a Regex match on the pattern “\bSomeKeyword\b”, which will only match instances of SomeKeyword with a word boundary immediately before and after.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I am looking for a way to use the IN keyword in JasperReport. My
I'm looking for a consistent way to structure my use of formatting strings throughout
I am looking for the cleanest way. I am tempted to use delegates not
Im looking a way to use different IP addresses for each GET request with
I am looking for a way to use a textarea and get the values
I am looking for a way to use the same stylesheet for print media
I'm looking for a way to use the length of a match group in
I am looking for a way to use a UILabel (or something similar) to
I'm looking for a way to use two DateTimePicker controls to select a range
I'm looking for a way to use the MySQL timestamp column type in Doctrine

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.